2
讓我們假設有一個UIView
包含UILabel
內部。的財產語義轉發到複製的財產在Objective-C
的UIView
的公共界面如下,在它的.h
:
@interface MyView : UIView
@property (nonatomic, copy) NSString *text;
@end
,私下內它的.m
:
@interface MyView()
@property (nonatomic, strong) UILabel coolLabel;
@end
與它的.m
實現:
@implementation
- (void)setText:(NSString *)text
{
self.coolLabel.text = text;
}
- (NSString *)text
{
return self.coolLabel.text;
}
@end
尋找一個T中的公共接口我宣佈@property (nonatomic, copy) NSString *text
有copy
因爲文字是由內部的coolLabel
複製。但是,我不確定這是否正確。
應該聲明@property (nonatomic, assign) NSString *text
與assign
,而不是因爲我的班級沒有專門執行內存管理?或者是我的當前接口聲明正確?
僅供參考,一切假設ARC
這是否在ARC如何運作的任何方式改變? –
不是。 ARC會做正確的事情。 – rmaddy