xcode empty var, который был установлен правильно - PullRequest
0 голосов
/ 03 февраля 2012

Я получаю пустое значение var при доступе к нему.Этот var был правильно перезаписан.

"name1" объявлено в .h как:

NSString *nomTab1;

@property (strong, nonatomic) NSString *nomTab1;

в .m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{    
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    NSArray *viewControllers = [NSArray alloc];

    nomTab1 = [NSString alloc];

, также синтезировано и установленово время выполнения функции.Однако, когда я пытаюсь получить доступ к нему из другой функции (того же контроллера), имеет пустое значение.Кажется, это основной вопрос, но не работает ... Спасибо.

Ответы [ 3 ]

0 голосов
/ 03 февраля 2012

Вы не сохраняете nomTab1. Вы говорите, что синтезировали его, но тогда не используете self.nomTab1 = ..., поэтому значение не сохраняется.

Проверьте это для объяснения синтеза и свойств.

0 голосов
/ 03 февраля 2012

В вашем коде никогда не должно быть выделенного кода. Вы должны распределить и инициализировать вместе, как это:

NSArray *viewControllers = [[NSArray alloc] initWithObjects:..];
nomTab1 = [[NSString alloc] initWithSomeValue:...];

NSArrays и NStrings являются неизменяемыми, поэтому они не имеют никакого значения до тех пор, пока они не будут инициализированы (возможно, поэтому они кажутся пустыми при обращении к ним), и их нельзя изменить после инициализации.

Если вы планируете установить их значения позже, либо установите для них значение nil, а затем установите их для объекта, как только вы узнаете, что они из себя представляют, или используйте NSMutableArray и NSMutableString, которые можно изменить после их создания.

0 голосов
/ 03 февраля 2012

Вы должны инициализировать его.В вашем классе должен быть метод init, который выглядит следующим образом:

- (id)init {
    self = [super init];
    if (self) {
        // do something
        self.nomTab1 = [NSString string];
    }
    return self;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...