你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> Android轉iOS之Objective-C程序設計

Android轉iOS之Objective-C程序設計

編輯:IOS開發綜合

在工作期間,在和做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數組中,只能放進去對象,不可用使用基本數據類型(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方法

 

 

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved