3
최신 SDK 및 Xcode로 iOS 4 앱을 개발 중입니다. 4.2NSString 매개 변수를 복사하거나 유지 하시겠습니까?
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는 보존 및 릴리스를 자동으로 추가합니다). 또한'NSDate'는'NSCopying'을 구현하므로'-copy'도 보내야합니다. – JeremyP
일반화 -'NSCopying'을 구현하는 것은'copy' 의미 체계이어야합니다. 그러나, 나는 그것을 변경할 수있는 하위 클래스가 있다면 엄지 손가락 규칙을 사용한다. – deanWombourne