переменная доступа другого класса

Как получить доступ к переменным другого класса? Вот как я это реализовал.

@interface Class1 :NSObject {

NSString * Data; } @property (неатомарный, сохранить) NSString * Data;

@implementation Class1
@synthesize Data;
someMethod{
self.Data = @"something";
}

и в Class2:

@implementation Class2
someMethodOfClass2{
Class1 *c=[[Class1 alloc]init];
[c someMethod];
NSString *str=c.Data;
}

Я получаю c.Data как null в Class2. Я здесь что-то не так делаю?

----------- myClass1 --------------

@interface APIManager: NSObject {NSString * Data; }

@property (неатомарно, сохранить) NSString * Data;

- (недействительно) getData;

@конец

@implementation APIManager

@synthesize Data;

- (недействительно) getData {self.Data = @ "ответ"; }

-------- myClass2 -------------

@interface Search: NSObject {

}

- (void) searchForItems: (NSString *) запрос;

@конец

@implementation Search

- (void) searchForItems: (NSString *) запрос {APIManager * apiManager = [[APIManager alloc] init]; [apiManager getData]; NSLog (@ "% @", [данные apiManager]); }


person happy_iphone_developer    schedule 22.03.2011    source источник


Ответы (2)


Вероятно, вам следует использовать self.Data = @"something" вместо self.Data = "something"

person Tomas Vana    schedule 22.03.2011
comment
Извините, я не написал весь код. Это просто отрывок. self.Data=@Somethin является правильным, а также данные объявляются в интерфейсе. - person happy_iphone_developer; 22.03.2011
comment
Вам по-прежнему не хватает пары элементов (оба метода должны быть отмечены как таковые и включены в интерфейс), но кроме этого очевидной проблемы с вашим кодом нет. Возможно, вы захотите опубликовать более полный пример;) - person Tomas Vana; 22.03.2011
comment
Я добавил свой код. Подскажите, пожалуйста, в чем я ошибаюсь. - person happy_iphone_developer; 22.03.2011
comment
К сожалению, я до сих пор не понимаю, почему он должен быть нулевым. Что печатает NSLog? - person Tomas Vana; 22.03.2011
comment
проблема решена. я делал что-то вроде многопоточности. В любом случае спасибо Томас - person happy_iphone_developer; 22.03.2011

В Objective-C вы должны использовать @"something" вместо "something". Также не пропустили ли вы объявление переменной? В вашем @interface вы должны сделать что-то вроде NSString *Data.

person lucas clemente    schedule 22.03.2011