日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS开发学习笔记(一)——ObjectC语言快速入门

發布時間:2023/12/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS开发学习笔记(一)——ObjectC语言快速入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需要學習IOS開發,首先需要掌握的是ObjectC語言。由于我之前接觸過多年的C/C++和Java,所以很多地方我只需要理解ObjectC和他們的不同即可。當然為了能夠系統的學習,建議您還是仔細學習一遍ObjectC語言,我這里并不會講述太多原理方面的內容,只會盡量將實際編碼中需要注意的內容列出:

  • 基本的關鍵字,類似于for/case/switch等等,大家都是差不多的;
  • “@”標識符標識與標準C有區別的關鍵字,"[]"標識方法調用;
  • import關鍵字取代了include,這樣可以不需要很多的#ifdef宏定義;
  • @autoreleasepool標識一個自動釋放池,這樣我們alloc出的對象無需我們自己release;
  • 簡單數據類型類似與int等在ObjectC中繼續存在,只不過BOOL是大寫,并且取值是YES/NO;
  • 所有的對象類型變量定義都使用C中的指針類型定義法,例如:NSString *str,但是注意我們的變量指向的是內容,但是不能對指針進行操作;
  • 和大部分的C系列語言不同,我們不是使用object.method()這樣的方法來調用方法,而是使用[object method]方法;
  • 如果方法返回值,那么我們使用result = [result method]的形式;
  • 如果方法包含參數,那么我們使用result = [result method:arg1, arg2name: arg2value]的形式,其中arg2name是參數名(或者可以認為是形參),arg2value是參數值(可以認為是實參),Apple給的說法是這樣代碼更易讀,但是對于我來說真是一點都不習慣,當然我們也可以使用C++或者Java的那種方法,但這種方法Apple不推薦。。。;
  • 大部分創建對象(構造方法調用)使用如下形式:NSDate *date = [[NSDate alloc] init]的形式,其中alloc負責分配地址,init負責初始化;
  • 關于Automatic Reference Counting(ARC):ARC是IOS 5中增加的能力,這是一個非常強大的能力,這樣我們可以在初始化對象后不用再去關心對象釋放的問題(和Java相似的垃圾回收機制,只不過是在編譯器中添加代碼實現,不是直接在源代碼中添加),以前我們給對象分配內容并且使用結束后需要調用[object release]來釋放空間,防止內存泄露(memory leaking),注意需要在工程建立時選擇這個選項;
  • 對于方法來說,如果是"+"標記的,表示是static方法;如果是"-"標記的,表示是實例方法(非靜態方法);
  • 對于類來說,有interface表示類的接口(類似于C中的頭文件),implementation表示類的實現(類似于C中的C文件);
  • 對于類和方法的定義,我們經常看到的是:
    #import <Foundation/Foundation.h>@interface MyData : NSObject-(void)doNothing;@end #import "MyData.h"@implementation MyData-(void)doNothing {} @end
  • 對屬性的定義:
    #import <Foundation/Foundation.h>@interface MyData : NSObject@property int myId; // nonatomic非原子性訪問,不加同步,多線程并發訪問會提高性能。 // strong相當于是一個深拷貝的操作 @property (nonatomic, strong)NSString *name;-(void)doNothing;@end
    #import "MyData.h"@implementation MyData-(void)doNothing {_name = [[NSString alloc] initWithFormat:@"aaa"]; } @end
    注意以上的_name屬性需要這樣使用。如果你需要使用方法你可以直接[self setName:xxxx]。

  • 以上是基本的語法,后續可能會繼續補充。




  • 總體來說,ObjectC對于有C/C++/Java開發經驗的程序員(like me)來說,學習的曲線遠比C/C++到Java大,而且我認為ObjectC也不是我期待的那樣簡單和美好,Anyway,存在即是合理,更何況我們需要用來實現自己的夢想,Let's go to the next!

    總結

    以上是生活随笔為你收集整理的IOS开发学习笔记(一)——ObjectC语言快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。