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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

内存管理范围和@property

發布時間:2024/6/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内存管理范围和@property 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

管理范圍:?

管理任何繼承NSObject的對象,對其他的基本數據類型無 效?

本質原因是因為對象和其他數據類型在系統中的存儲空間不一樣,其它局部變量主要存放于 棧中,而對象存儲于堆中,當代碼塊結束時這個代碼塊中涉及的所有局部變量會被回收,指 向對象的指針也被回收,此時對象已經沒有指針指向,但依然存在于內存中,造成內存泄 露。?

?

?

內存管理的原則?

1)原則?

只要還有人在使用某個對象,那么這個對象就不會被回收; 只要你想使用這個對象,那么就應該讓這個對象的引用計數器+1; 當你不想使用這個對象時,應該讓對象的引用計數器-1;?

2)誰創建,release?

(1)如果你通過alloc,new,copy來創建了一個對象,那么你就必須調用release或者 autorelease方法
(2)不是你創建的就不用你去負責?

3)retain,release?

只要你調用了retain,無論這個對象時如何生成的,你都要調用release?

4)總結?

有始有終,有加就應該有減。曾經讓某個對象計數器加1,就應該讓其在最后-1.?

:?

1)空指針:沒有指向任何東西的指針,給空指針發送消息不會報錯 關于nil和Nil及NULL的區別:?

nil: A null pointer to an Objective-C object. ( #define nil ((id)0) ) nil 是一個對象值。
Nil: A null pointer to an Objective-C class.?

NULL: A null pointer to anything else. ( #define NULL ((void *)0) ) NULL是一個通用指針(泛型指針)。?

NSNull: A class defines a singleton object used to represent null values in collection objects (which don't allow nil values).?

[NSNull null]: The singleton instance of NSNull.?

[NSNull null]是一個對象,他用在不能使用nil的場合。?

?

@property?

@property int age; 1)生成一個_age 2)生成get和set方法的聲明 3)生成 get和set方法的實現?

@property (......) int age;?

?

1)內存管理相關參數?

retain:對對象release舊值,retain新值(適用于OC對象類型) assign:直接賦值(默認,適用于非oc對象類型) copy:release舊值,copy新值?

驗證assign如果作用在對象上,實際上就是直接賦值 //使用@property增強型 生成get和set方法?

@property(nonatomic,assign)Car *car; /*?

.m文件中實際上生成的是
_car = car; //當對象release后,將無法使用該對象?

*/?

?

@property 參數(二)?

1)是否要生成set方法(若為只讀屬性,則不生成)?

readonly:只讀,只會生成getter的聲明和實現 readwrite:默認的,同時生成setter和getter的聲明和實現?

2)多線程管理(蘋果在一定程度上屏蔽了多線程操作)?

nonatomic:高性能,一般使用這個 atomic:低性能,默認?

3)setget方法的名稱?

修改set和get方法的名稱,主要用于布爾類型。因為返回布爾類型的方法名一般以is開頭,修改名稱一般用 在布爾類型中的getter。?

@property(nonatomic,assign, setter=abc:,getter=haha)int age 可以理解為把[psetAge:]------>[pabc:], [page] --------->[phaha];?

@property(nonatomic,assign, setter=setVip:,getter=isVip) BOOL vip;?

?

轉載于:https://www.cnblogs.com/ljcgood66/p/5295772.html

總結

以上是生活随笔為你收集整理的内存管理范围和@property的全部內容,希望文章能夠幫你解決所遇到的問題。

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