我的MyClass设置如下。如果NSString属性是只读的,那么它应该已经设置为复制和自动释放。我还需要像下面那样复制它吗?
MyClass *myClass = [[MyClass alloc] init];
NSString *assignStr = [myClass.returnStr copy];
...
[myClass release];
[assignStr release];
或
MyClass *myClass = [[MyClass alloc] init];
NSString *assignStr = myClass.returnStr;
...
[myClass release];
MyClass.h
@interface MyClass : NSObject {
@private
NSString *returnStr;
}
@property (nonatomic, readonly) NSString *returnStr;
@end
MyClass.m
@implementation MyClass
@synthesize returnStr;
@end
答案 0 :(得分:0)
使用您提供的代码
@interface MyClass : NSObject {
@private
NSString *returnStr;
}
@property (nonatomic, readonly) NSString *returnStr;
@end
您的属性设置器使用simple assignment
定义因此,您可以使用两个代码段来调整assignStr值,这在内存管理方面是正确的;合乎逻辑的应该是使用经典的赋值模式。
但实际上更重要的是,你如何处理主值(你以只读方式返回的值)以及你想用它实现的目标(对不起,这对我提供的样本并不是很清楚,这似乎不匹配100%你的主题标题)