Скопировать или сохранить параметр NSString? - PullRequest
3 голосов
/ 14 марта 2012

Я разрабатываю приложение iOs 4 с последним SDK и XCode 4.2

У меня вопрос о параметрах 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 параметры?Или я могу их скопировать?

1 Ответ

4 голосов
/ 14 марта 2012

Если ARC, нет. Если не ARC, да.

Для NSString иваров, обычно copy. Для NSDate ивара retain. Причина copy с NSString заключается в том, что NSMutableString передается в вашем init методе. Копирование параметра предотвращает его мутирование вашим классом. Таким образом, он обеспечивает инкапсуляцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...