Objective C 快速入門學習一

來源:互聯網
上載者:User

標籤:style   檔案   io   cti   代碼   re   

Objective-C程式設計

 

1. 直接用Xcode作為IDE,捨棄gcc編譯方面的學習。
2.入門例子:
Eg:列印Hello World 控制台程式

#import<Foundation/Foundation.h> //匯入Foundation.h標頭檔。
//標頭檔尾碼.h,源檔案尾碼.m,Objective-C++尾碼.mm。

int main(int argc, const char* argv[])//主函數(和C/C++相同, // 和/* 內容 */表示注釋符號)
{
      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];//alloc一個NSAutoreleasePool對象並init。分號表示一句結尾。
  //等效於兩句 NSAutoreleasePool *pool = [NSAutoreleasePool alloc]; [pool init];
  //該代碼由Xcode自動產生,初步簡單的理解,自動釋放objects機制,避免記憶體泄露。

  /*複雜理解,Cocoa(蘋果的物件導向開發架構)的記憶體管理主要依賴於Reference Counting, 而NSAutoReleasePool就是用來支援它的。
  1.一個object銷毀觸發時,可以被這個object的release方法觸發,也可以被autorelease觸發,如果是後者,只有pool drain時,才會釋放對應的object
  2.每建立一個pool,則pool與相應的autoreleased object放入stack,當pool drain時,同時release掉其包含的objects。
  3.在Reference Counting的環境裡, Cocoa總是期望在每一個thread都存在一個autorelease pool,如果沒有,可能會記憶體泄露。
  4.銷毀pool不會用release,原因是為了讓程式同時相容Reference Counting記憶體管理環境 與 Garbge Collection(記憶體回收)環境, 因為在Garbage

  Colloection 環境中drain的作用是觸發collect garbage動作.*/


  
//插入自訂代碼區
  NSLog(@"Hello World"); // @"內容" 表示常量字串
  /*NSLog格式化列印函數,類似C語言的Printf。
  Objective-C很多都已NS開頭的函數,例如NSArray, NSString 等等NS首碼類,函數歸屬於屬於cocoa Fundation基礎類庫
  可能與Apple收購NeXT Software,"NS"被作為Fundation中所有成員的首碼*/

  int iValue1, iValue2;
  NSLog(@"iValue1 = %i, iValue2 = %i", iValue1, iValue2); //%d、%o、%x也可以

  [pool drain];//Xcode自動產生,釋放已指派的記憶體池
  return 0;
}

相關文章

聯繫我們

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