(2/18)重學Standford_iOS7開發_Xcode_課程筆記

第二課:html

一、惰性初始化git

1 -(ObjectType *)example
2 {
3     f(!_example) example =[[ObjectType alloc] init];
4 
5     return _example;
6 }

  直到使用前最後一刻才初始化變量github

二、數組字面量格式數組

  @[a,b,c,…,m,n];框架

三、@synthesize函數

  同時重寫屬性的setter與getter方法時,須要顯式合成,不然編譯器默認生成@synthesize example = _example;測試

四、類方法spa

1 +(ReturnType *)example
2 {
3     //不能在類方法中使用類屬性
4     //做爲工廠方法使用
5     //通常用於建立實例對象
6 }

五、對象初始化方法debug

  框架:code

1 -(instancetype)init
2 {
3     self = [super init]
4     if(self)
5     {
6         //自定義初始化內容
7     }
8     return self;
9 }

  指定初始化方法:

    一般默認爲公有API,即指定使用的初始化方法,其他初始化方法中必須調用指定初始化方法來完成初始化。無語法格式,一般經過註釋說明。同理對一類方法有指定方法。

六、Xcode基本使用

  略,詳見視頻或課件pdf

七、Outlet與Action

  UI與Controller的連接,經過Ctrl+Drag實現。

  IBAction實際上爲void,供Xcode識別,編譯器自動忽略。

  IBOutlet實際上爲標記,供Xcode識別,編譯器自動忽略。

   1 #define IBAction void 2 #define IBOutlet  

八、NSLog()

  C語言函數,用於在控制檯打印輸出,可用於程序運行時的測試,

  (做者說明:在實際編寫APP程序時咱們並不直接使用NSLog()函數,由於APP打包編譯時禁止NSLog()輸出,所以咱們須要經過預編譯在debug版使用NSLog(),而在release版取消NSLog()。能夠在pch文件或合適的地方插入以下代碼

1 #if DEBUG
2 #define yourPrefixLog(...) NSLog(__VA_ARGS__)
3 #else
4 #define yourPrefixLog(...)
5 #endif

而後在程序中須要打印輸出的地方能夠直接使用yourPrefixLog()替換以前的NSLog()就好了。)

九、做業

  a.使用Xcode建立 Matchismo 工程

  b.建立並輸入以前的4個objective-C類:Card,PlayingCard,Deck,PlayingCardDeck

  c.爲ViewController添加一個Deck類的私有屬性

  d.使用惰性初始化上面的屬性,將Deck初始化爲含有PlayingCard的牌堆

  e.實現每次點擊牌堆隨機翻出牌堆中某張牌

  f.不能破壞原有的函數結構

  詳見https://github.com/NSLogMeng/Stanford_iOS7_Study_Machismo(這次做業答案爲課程公佈正確答案,後續課程做業無標準答案,做者僅以我的理解解答,歡迎指正)

 

課程視頻地址:網易公開課:http://open.163.com/movie/2014/1/H/R/M9H7S9F1H_M9H7V38HR.html

       或者iTunes U搜索standford課程

相關文章
相關標籤/搜索