我正在使用最新的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
个参数吗?或者,我可以复制它们吗?
答案 0 :(得分:4)
如果ARC,没有。如果不是ARC,是的。
对于NSString
ivars,通常是copy
。对于NSDate
ivar,retain
。 copy
NSString
NSMutableString
的原因是init
方法传递了{{1}}。复制参数可防止您的类被其变异。因此,它确保了封装。