переменная доступа другого класса - PullRequest
1 голос
/ 22 марта 2011

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

@interface Class1 :NSObject {

NSString * Data;} @property (nonatomic, retain) 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 как ноль в Class2.Я что-то здесь не так делаю?

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

@ interface APIManager: NSObject{NSString * Data;}

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

- (void) getData;

@ end

@ реализация APIManager

@ synthesize Data;

- (void) getData {self.Data = @ "response";}

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

@ interface Поиск: NSObject {

}

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

@ end

@ реализация Search

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

Ответы [ 2 ]

1 голос
/ 22 марта 2011

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

0 голосов
/ 22 марта 2011

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

...