常見面試題二

  1. Objective-C中的@property
    這里有一篇文章寫的挺好:關于property
  • 它是聲明屬性的關鍵字,系統會為該屬性自動創建setter和getter方法(也就是accessor存取器)
  • 早期xcode版本中,需要@property和@synthesize配合使用,前者聲明屬性,后者指定合成的方法指向的變量名。可參見property和synthesize@property相關
  • @synthesize的作用,可參見如下代碼
@interface ViewController ()
@property (nonatomic, copy) NSString *name;
@end
@implementation ViewController {
        NSString *baseView;
}
@synthesize name = $name;
-(void)setName:(NSString *)newName {
        $name = newName;
        // name = newName; // 這樣是不對的,因為synthesize告訴編譯器成員變量叫$name,而不是name;
}
-(void)viewDidLoad {
        [super viewDidLoad];
        $name = @"";
}
@end
  1. Block
    很多關于block的文章都聲明block是函數,這一點是錯的。首先,Block是對象,這在apple的文檔中有介紹:Working with Blocks
    Blocks Programming Topics
  1. 關于面向對象
    這里有一篇文章寫得挺好:OC中面向對象的編程思想
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容