Leí en alguna parte que con NSString en un objeto, uno tiene que usar copy en lugar de retener. ¿Alguien puede explicar si esto es correcto y por qué?¿Utilizo retener o copiar en mi singleton?
Por ejemplo, tengo la siguiente declaración para mi Singleton:
#import <foundation/Foundation.h>
@class FaxRecipient;
@interface MyManager : NSObject {
NSString *subject;
NSString *reference;
NSString *coverSheet;
FaxRecipient *faxRecipient;
}
@property (nonatomic, retain) NSString *test1;
@property (nonatomic, retain) NSString *test2;
@property (nonatomic, retain) NSString *test3;
@property (nonatomic,retain) FaxRecipient *faxRecipient;
+ (id)sharedManager;
@end
El código que ha mencionado es correcto. Tienes que usar retener. – Satyam
Tengo entendido que también debo usar retener. Me interesarían aquí las teorías alternativas y las razones para ellas. Una razón que me viene a la mente es que copiar significa que si pasas NSMutableString en lugar de NSString, tu clase no se verá afectada si otra cadena cambia la cadena mutable. NSString sería diferente porque es fijo. – drekka
posible duplicado de http://stackoverflow.com/questions/387959/nsstring-property-copy-or-retain – Jason