复制或保留NSString参数



我正在使用最新的SDK和XCode 4.2 开发iOs 4应用程序

我有一个关于NSString参数的问题。这是我的类定义:

#import <Foundation/Foundation.h>
@interface BlogEntry : NSObject
{
    NSString* title;
    NSString* text;
    NSDate* date;
    NSString* photo;
}
- (id)initWithTitle:(NSString*)titulo text:(NSString*)texto date:(NSDate*)fecha photo:(NSString*)foto;
@end

以及实施:

#import "BlogEntry.h"
@implementation BlogEntry
- (id)initWithTitle:(NSString*)titulo text:(NSString*)texto date:(NSDate*)fecha photo:(NSString*)foto
{
    if (self = [super init])
    {
        title = titulo;
        text = texto;
        date = fecha;
        photo = foto;
    }
    return self;
}
@end

我需要保留initWithTitle参数吗?或者,我可以复制它们吗?

如果是ARC,则否。如果不是ARC,则是。

对于NSString ivar,通常为copy。对于NSDate ivar,retaincopyNSString的原因是在init方法中传递NSMutableString的情况下。复制参数可以防止类对其进行变异。因此,它确保了封装。

最新更新