Что не так с этим синтаксисом? - PullRequest
1 голос
/ 19 января 2010

У меня #imported FirstViewController.h

, и я получаю сообщение об ошибке «ожидаемый»: «до».token "

NSString *myString = RoutineTitle.text;

[FirstViewController.routines addObject:myString];

Что я делаю не так?Кто-нибудь, пожалуйста, просветите меня!

Спасибо,

Сэм

Ответы [ 3 ]

0 голосов
/ 19 января 2010

Синтаксис

[FirstViewController.routines addObject:myString];

используется в языках (я думаю, что кроме цели c, а не в цели c) для присвоения значений статическим переменным.

Таким образом, если routines является объектом статического массива, вы должны определить статический метод в классе FirstViewController и, вызывая этот метод, вы должны добавить этот объект следующим образом:

+(void)addObjectToRoutines:(NSString *)string{//In the FirstViewController class
[routines addObject:string];
} 

и из класса, в котором вы находитесь, просто сделайте это

NSString *myString = RoutineTitle.text;

[FirstViewController addObjectToRoutines:myString];

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

FirstViewController *viewCont = [[FirstViewController alloc] init];
[[viewCont routines] addObject:myString];

Надеюсь, это поможет. (Ответ дается, поскольку я считаю, что FirstViewController - это имя класса, а не переменная, может быть, я ошибаюсь)

Спасибо

Madhup

0 голосов
/ 19 января 2010

Из оператора импорта я предполагаю, что FirstViewController - это имя класса:

#imported the FirstViewController.h

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

[FirstViewController.routines addObject:myString];

Однако вам нужно использовать имя объекта, а не имя класса, что-то вроде (я не знаю, как выглядит ваш код):

FirstViewController * aFirstViewController
            = [[FirstViewController alloc] initWithSomething ....];

Теперь при условии, что FirstViewController имеет коллекцию routines и соответствующее объявление property, которое вы можете сделать:

[aFirstViewController.routines addObject:myString];
0 голосов
/ 19 января 2010

Является ли «подпрограмма» членом FirstViewController? Это похоже на то, что «FirstViewController» - это имя класса, а не имя экземпляра, но я могу ошибаться.

Если вы находитесь в «FirstViewController», а «рутины» - это переменная в области видимости, которая представляет собой NSArray или NSMutableArray или аналогичный, просто измените его на:

NSString *myString = RoutineTitle.text;

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