我仍在學習CocoaTouch的一些細微差別。在ARC環境中爲float,int等類型內部生成什麼類型的getters/setters?ARC環境下的Setters和Getters
我知道,如果該屬性是在非ARC對象我可能有這樣的事情:
- (NSURL *)url {
if (_url == nil)
_url = [[MyURL alloc] initWithURL:url];
return _url
}
- (void)setUrl:(NSURL *)theUrl {
if (theUrl != _url) {
[_url release];
_url = [theUrl retain];
}
}
,而是基於一個ARC環境釋放和保留,不能使用。在這種情況下,ARC環境會自動創建什麼樣的getter/setter。
那麼像float,int等標量類型呢?
3.對我來說很有意義,它只是一個懶洋洋地初始化吸氣 – 2013-05-08 05:16:17
感謝!!!!!!!!!!!!! – SpaceDog 2013-05-08 09:25:42
@Catfish_Man也許「沒有意義」太強了。但是有一個getter叫做'url',它用變量(ivar?global?)設置ivar'_url'。)看起來並不像DD,對我來說這是一個非常好的實現(實際上,由於很多原因,不僅僅是因爲命名問題),所以稱爲「url」。如果它是一個計算成本很高或佔用大量內存的資源,我會使用懶惰初始化,但在這裏看起來並不謹慎,如果我這樣做了,我會傾向於稍微不同的實現。 – Rob 2013-05-08 15:41:23