(2/18)重學Standford_iOS7開發_Xcode_課程筆記,xcode6ios7模擬器

來源:互聯網
上載者:User

(2/18)重學Standford_iOS7開發_Xcode_課程筆記,xcode6ios7模擬器

第二課:

1、惰性初始化

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

  直到使用前最後一刻才初始設定變數

2、數組字面量格式

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

3、@synthesize

  同時重寫屬性的setter與getter方法時,需要顯式合成,否則編譯器預設產生@synthesize example = _example;

4、類方法

1 +(ReturnType *)example2 {3     //不能在類方法中使用類屬性4     //作為Factory 方法使用5     //一般用於建立執行個體對象6 }

5、對象初始化方法

  架構:

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

  指定初始化方法:

    通常預設為公有API,即指定使用的初始化方法,其餘初始化方法中必須調用指定初始化方法來完成初始化。無文法格式,通常通過注釋說明。同理對一類方法有指定方法。

6、Xcode基本使用

  略,詳見視頻或課件pdf

7、Outlet與Action

  UI與Controller的連結,通過Ctrl+Drag實現。

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

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

   1 #define IBAction void 2 #define IBOutlet  

8、NSLog()

  C語言函數,用於在控制台列印輸出,可用於程式運行時的測試,

  (作者說明:在實際編寫APP程式時我們並不直接使用NSLog()函數,因為APP打包編譯時間禁止NSLog()輸出,因此我們需要通過先行編譯在debug版使用NSLog(),而在release版取消NSLog()。可以在pch檔案或合適的地方插入如下代碼

1 #if DEBUG2 #define yourPrefixLog(...) NSLog(__VA_ARGS__)3 #else4 #define yourPrefixLog(...)5 #endif

然後在程式中需要列印輸出的地方可以直接使用yourPrefixLog()替換之前的NSLog()就行了。)

9、作業

  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課程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.