Как установить свойство NSString * из другого класса? - PullRequest
1 голос
/ 22 августа 2011

Пожалуйста, смотрите следующий код.

FirstViewController.h:

@interface FirstViewController : UIViewController {
    NSString* inputData;
}

@property (nonatomic, copy/retain) NSString* inputData;

FirstViewController.m:

@synthesize inputData;

SecondViewController.m:

- (IBAction)buttonSaveDown {
    [firstViewController setInputData:@"Text"];
    firstViewController.inputData = @"Text";
    firstViewController.inputData = [[NSString stringWithString:@"Text"] retain];
}

Добавить точки останова после каждой строки с inputData.Проверьте firstViewController.inputData - это '(null)'!Почему?

Printing description of inputData:
(null)

Также я пытаюсь «Редактировать значение» в отладчике.После установки значения результат также будет равен «(null)».

Нет никаких предупреждений о сборке.Пожалуйста, помогите кому-нибудь.Большое спасибо!

Модераторам: Извините, но кто-то удалил тот же предыдущий вопрос, когда я попросил удалить все комментарии к нему.

Ответы [ 2 ]

3 голосов
/ 22 августа 2011

Ваша переменная firstViewController не установлена ​​на что-либо.Вам нужно установить для него действительный экземпляр FirstViewController, прежде чем вы сможете сделать с ним что-нибудь полезное.

1 голос
/ 22 августа 2011

Просто используйте

@property (nonatomic, retain) NSString* inputData;

Тогда каждый из них должен работать:

[firstViewController setInputData:@"Text"];
firstViewController.inputData = @"Text";
firstViewController.inputData = [NSString stringWithString:@"Text"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...