Android轉iOS之Objective-C程式設計

來源:互聯網
上載者:User

Android轉iOS之Objective-C程式設計

在工作期間,在和做iOS的同事之間聊天的時候,發現iOS開發也很有意思,所以想學學iOS開發,同事推薦了這本書,Objective-C 的,因為之前有做過Android的開發,所以學習這本書的話,只是熟悉一下Objective-C的文法習慣,使用習慣,看看是不是還有什麼JAVA裡面沒有的,同時記了些筆記,因為有原來的Android基礎,所以一些相同的沒有記下,適合JAVA向Objective-C轉,只是入門,要是想自習學的話還是好好看看這本書----Objective-C程式設計自己找。

1.鍵盤輸入:
scanf(%i,&number);
2.系統自動實現get、set方法
在介面部分@property int numerator,denominator
在實現部分@synthesize numerator,denominator
這樣就不必再自己寫get、set方法了,而且運行較高效,也不用聲明變數了;
3.具有多個參數的方法
-(void) setTo: (int) n over:(int) d;
-(int) set:(int) n:(int) d;//不帶參數名的方法
4.將類對象作為參數傳入
-(void) add: (Fraction *) f;//傳入的是類對象的引用
5.聲明類的引用
@class XYPoint;只是簡單的說明XYPoint是一個類,在後面的引用中不會報錯,但是要是使用到XYPoint的方法的時候,還是使用#import;
6.id dataValue;
Complex *c = [[Complex alloc]init];


dataValue = c;
dataValue可以調用Complex的所有的方法,在運行時確定需要動態調用的方法的

[c isMemberOfClass: [Complex class]];//判斷c是否是Complex的成員
[c isKindOfClass: [Complex class]];//判斷c是否是Complex或其子類的成員
[c respondsToSelector: @selector(setReal:andImaginary:)]//c是否響應setReal:andImaginary:方法
[Complex instancesResponseToSelector:@selector(setReal:andImaginary:)]//Complex是否響應setReal:andImaginary:方法
[c performSelector @selector(setReal:andImaginary:)]//執行setReal:andImaginary:方法


7.定義一個全域變數而且外部變數
在所有的方法、類、函數定義之外聲明全域變數
使用的時候使用extern + 變數即可使用或改變全域變數的值
定義一個全域但不是外部變數
使用static定義,只在本檔案中定義了該變數之後的部分可使用,其他檔案不可以
8.為資料類型指派另一個名稱
typedef int Counter;
Counter j;
typedef Number *NumberObject;
NumberObject myValue;
Number *myValue;
9.分類
可以將類的定義模組化到相關方法的組或分類中。提供了擴充現有類的簡便方式,不必訪問類的原始碼,也無需建立子類

建立分類的介面部分
@interface Fraction(MathOps)//分類的名字是MathOp,擴充了Fraction
建立分類的實現部分
@implementation Fraction(MathOps)
類的擴充-(未命名分類)@interface Fraction()//不指定名字
相對於命名分類來說,可以通過定義附加的執行個體變數來擴充類,在命名類中是不允許的,而且聲明的方法必須在主實現地區實現,不得在分離的實現地區實現
10.協議
多個檔案分享權限設定的方法列表,只有方法名,沒有實現,在遵守該協議的類中實現。--類似介面
@protocol 名字
@optional //選擇實現的方法
@required //需要實現的方法
遵守協議 類名:NSObject<協議名>
判斷是否遵守某協議 [object conformsToProtocol:@prot(協議名)]
11.塊
//塊定義
^(void)
{
NSLog(@programing is fun);
}
//塊使用
void (^printMessage)(int)=
^(int n)
{
NSLogin(@Program is fun %i,n);
};//塊的定義以;結尾
printMessage(2);
13.xcode中訪問Foundation文檔 Help-Documentation
顯示需要的某一個的時候,按option並單擊滑鼠
14.在NSArray數組中,只能放進去對象,不可用使用基礎資料型別 (Elementary Data Type)(int、float等),所以對於數字等應使用NSNumber,把資料放到NSNumber([NSNumber numberWithInteger:1])中,在放到NSArray中
15.可變字串NSMutableString NSString的子類
16.不可變數組NSArray、可變數組NSMutableArray(指的是數組的長度可不可變)
17.詞典
NSMutableDictionary----可變詞典
NSDictionary----枚舉詞典(不可變,在初始化的時候dictionaryWithObjectsAndKeys把所有的索引值都列出來)
建立的時候以nil結尾
18.檔案
NSFileManager--對檔案建立、讀取資料、寫入、重新命名、刪除、是否存在、屬性、複製、兩個檔案內容是否相同
NSFileManager *fm = [NSFileManager defaultManager];//初始化
NSData用來設定緩衝區、將檔案內容讀入緩衝區或將緩衝區的內容寫入檔案
NSData *fileData;
fileData = [fm contentsAtPath:@file1name];//將file1name檔案中的內容讀到fileData中
[fm createFileAtPath:@file2Name contents:fileData attributes:nil]//把fileData中的內容寫到file2name中


NSFileHandle--對檔案開啟、讀寫、尋找指定位置、讀取或寫入特定數目的位元組
NSURL
在網站讀取任何類型的資料都可使用dataWithContentsOfURL(dictionaryWithContentsOfURL、arrayWithContentsOfURL)

NSBundle
建立應用的時候,系統儲存相關資料到應用程式套件中,訪問這些資源使用NSBundle
[[NSBundle mainBundle]pathForResource:@filename ofType: @txt];
[[NSBundle mainBundle]pathsForResourcesOfType:@jpg inDirectory:@birdImages];
(/)表示根目錄
(~)表示使用者主目錄~/filename
19.複製
遵守協議
直接“=”複製,會是兩個變數指向同一個對象
使用
[array copy](淺複製)會複製出另一份,但是還是會指向相同的地址


20.歸檔
writeToFile:atomically://將資料歸檔到檔案,可以使用數組,NSString,NSData等對象發送訊息,
dictionaryWithContentsOfFile://讀取資料到發送訊息的對象

[NSKeyedArchiver archiveRootObject:toFile:]//歸檔內容到檔案
[NSKeyedUnarchiver unarchiveObjectWithFile:]//在檔案裡讀出內容
//上面存入的是Array則讀出Array,存的是什麼類型,讀出是什麼類型

自訂對象要遵守
協議,實現encodeWithCoder,和initWithCoder方法

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.