回覆列表
  • 1 # 擼的一手老僵

    object-c 使用引用計數的方式管理記憶體。當我們使用一個指標指向一塊記憶體的時候,應該對這塊記憶體做retain操作,那麼引用計數加一。當我們不再使用這個指標指向這塊記憶體,應該對這塊記憶體做release操作,那麼引用計數減一。這樣可以使引用計數值一直保持等於指向這塊記憶體的指標數量。retainCount返回當前記憶體的引用計數值。當記憶體被開闢後,預設的引用計數為1 。-----------------------------分割線---------------------------NSObject *object1 = [[NSObject alloc]init]; /*產生一個新的物件,此時不用release,因為新建的物件引用為1,不需要為第一個指向這個物件的指標額外加一計數。*/int count = [object1 retainCount];NSLog(@"%d",count); /*賦值後count等於1 */NSObject *object2 = object1;[object2 retain];count = [object2 retainCount];NSLog(@"%d",count); /*賦值後count等於2*//*需要認識的是,不論使用object1還是object2呼叫retain方法都是一樣的,因為兩者指向同一塊記憶體,計數增加減少都是以記憶體為物件的*/[object1 release];object1 = NULL; //讓object1成為空指標,這是object1不在指向這個物件的示範。[object2 release]; //當object2 release之後,這個物件的引用計數為0,記憶體將被釋放。object2 = NULL;

  • 中秋節和大豐收的關聯?
  • 男生分手後不主動找我,該怎麼辦?