установка переменной из другого класса - PullRequest
0 голосов
/ 25 июля 2011

В Class1 у меня есть переменная с именем "cDte1". Я хотел бы установить его из класса 2.

Class1.h:

@interface Class1 : UIViewController {

    NSString *cDte1;

}

@property (readwrite,assign) NSString *cDte1;

@end

В Class2.m я импортировал Class1.h

Я тогда попробовал это из Class2

  Class1.cDte1 = @"test";

но это не работает. Что я сделал не так?

РЕДАКТИРОВАТЬ, больше информации. Если мне нужно установить var, а затем показать представление, код, приведенный ниже, не работает, так как я предполагаю, что есть 2 экземпляра класса? Class1 *obj = [[Class1 alloc] init]; Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]]; obj.cDte1 = @"7/25/2011"; [self presentModalViewController:myView animated:YES]; [myView release]; [obj release];

Ответы [ 4 ]

1 голос
/ 25 июля 2011

Вы должны вызывать его для экземпляра класса, а не для самого класса. Что-то вроде:

Class1 *instance = [[Class1 alloc] init];
instance.cDte1 = @"test";
1 голос
/ 25 июля 2011

Вы устанавливаете переменные-члены для экземпляров классов , а не classes .

Так что вы можете сделать что-то вроде:

Class1 obj = [[Class1 alloc] init];
obj.cDte1 = @"test";

edit: в вашем примере попробуйте:

Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]];
myView.cDte1 = @"7/25/2011";
[self presentModalViewController:myView animated:YES];
[myView release];
0 голосов
/ 25 июля 2011
Class1 *viewController = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]];
viewController.cDte1 = @"7/25/2011";

[self presentModalViewController:viewController animated:YES];

[viewController release];

Это должно работать, если ViewController, который вы хотите выдвинуть, является экземпляром Class1.Убедитесь, что у вас есть соответствующий файл InterfaceBuilder (Class1.xib).
Если вы создаете свои представления вручную (без IB, нет .xib), не вызывайте initWithNibName:bundle:, а просто init.

0 голосов
/ 25 июля 2011

Создайте объект из Class1 и попробуйте получить к нему доступ.

Вы не можете получить доступ к свойствам с именами классов.

Как насчет

Class1 *object1 = [[Class1 alloc] init];
object1.cDte1 = @"Test";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...