2011-09-05 53 views
0

我有MyClass設置如下。如果NSString屬性是隻讀的,它應該已經被設置爲複製和自動釋放。我還需要像下面那樣複製它嗎?分配對象的只讀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 

您的屬性setter與simple assignment

定義,因此您可以同時使用的代碼片段調整assignStr值,它會在內存管理項正確;邏輯的一個應該是使用經典的分配模式。

但事實上,它更多的是關於如何處理主值(您以只讀方式返回的值)以及您想實現的目標(對不起,這在我提供的內容中並不清楚樣品,它似乎不匹配你的主題標題)