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
パラメータを保持する必要があるかもしれませんか?それとも、コピーする必要がありますか?
2つの問題があります。 ARCを使用している場合でも、コピーセマンティクスを持つプロパティのコピーを送信する必要があります(ARCでは、保持と解放が自動的に追加されます)。また、 'NSDate'は' NSCopying'を実装していますので、 '-copy'も送るべきです。 – JeremyP
一般化 - 'NSCopying'を実装するものは' copy'セマンティクスでなければなりません。しかし、私は、それが変更可能なサブクラスを持っているならば、 'それをコピーする'という経験則を使用します。 – deanWombourne