久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

iOS:ARC相關(guān)知識,assign/copy/retain/strong/weak/readyonly/readwrite/nonatomic/atomic

 嘆落花 2015-04-24
ARC
    自動引用計數(shù)
ARC不是垃圾回收,,而是編譯器自動插入代碼來減少程序員的代碼輸入和失誤,。
    同時比垃圾和效率要高,因為其不影響運行時間,相當(dāng)于自己管理內(nèi)存。
    總是通過屬性來管理實例變量(init/dealloc除外),,在dealloc中釋放所有屬性。 dealloc中會自動加入釋放實例變量的代碼,,因此不必要手段增加釋放實例變量的代碼,。不需要手動調(diào)用[super  dealloc]   不要調(diào)用retain,release,autorelease,編譯器會自動插入相關(guān)代碼。 注意命名方式,,不要以copyXXX方式命名不想進行retain的方法,,編譯器會根據(jù)方法名自動retain。   C語言結(jié)構(gòu)體中不要有對象指針     id和void*只能通過橋接轉(zhuǎn)換來進行轉(zhuǎn)換     不要使用NSAutoreleasePool,而是使用@autoreleasepool{}代碼塊,。 轉(zhuǎn)換ARC代碼:Edit->Refactor->Convert  to Objective-C ARC   strong 相當(dāng)于retain。
    Strong在ARC環(huán)境為默認(rèn)屬性類型,。
@property  (nonatomic,readwrite,strong)NSString *title;
    @property (strong, nonatomic) UIViewController
*viewController;
    @property (nonatomic,  strong) id  childObject;
Default weak 取代之前的assign,,對象銷毀之后會自動置為nil,防止野指針,。
    Assign不能自動置為nil,,需要手動置為nil。
     Delegate基本總是使用weak,,以防止循環(huán)引用,。特殊情況是,希望在dealloc中調(diào)用delegate的某些方法進行釋放,,此時如果使用weak將引起異常,,因為此時已經(jīng)是nil了,那么采用assign更為合適,。
@property  (weak, nonatomic) IBOutlet UIButton *myButton;//處于最頂層的IBOutlet應(yīng)該為strong
    @property (nonatomic,  weak) id  parentObject;
    @property(nonatomic,readwrite,weak) id
  <MyDelegate> delegate;
    @property (nonatomic,  weak) NSObject  <SomeDelegate> *delegate;
  assign 對基礎(chǔ)數(shù)據(jù)類型(NSInteger,,CGFloat)和C數(shù)據(jù)類型(int,  float, double, char等) ’@property  (nonatomic, assign) int n;
    @property (nonatomic, assign) BOOL isOK;
    @property (nonatomic,  assign)  CGFloat scalarFloat;
    @property (nonatomic,  assign)  CGPoint scalarStruct;
Default retain NSObject及其子類。
    Release舊值,,retain新值,。
    Retain是指針復(fù)制(淺復(fù)制),引用計數(shù)加1,,而不會導(dǎo)致內(nèi)容被復(fù)制,。
@property  (nonatomic, retain)UIColor *myColor;   atomic   Default nonatomic 非原子性訪問,對屬性賦值的時候不加鎖,,多線程并發(fā)訪問會提高性能     unsafe_unretained       copy 復(fù)制內(nèi)容(深復(fù)制),,如果調(diào)用copy的是數(shù)組,則為指針復(fù)制(淺復(fù)制),,僅僅復(fù)制子元素的指針,。 @property  (nonatomic,copy)NSString  *title;
    @property (nonatomic, copy) NSMutableArray
*myArray;//not recommended
    @property (nonatomic, copy) SomeBlockType someBlock;
  readonly       readwrite     Default retain cycle
    循環(huán)保留
delegate和block是產(chǎn)生retain  cycle的主要原因     dealloc 移除觀察者observers
    注銷通知notification
    設(shè)置非weak的delegate為nil
    取消timer
   

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多