Установите переменную в другом классе - PullRequest
0 голосов
/ 19 августа 2010

Я пытаюсь создать приложение, в котором 2 класса используют переменную.Просто чтобы код выглядел немного чище, я создал третий класс.Эта единственная работа «третьего класса» заключается в размещении этой переменной.

В классе 3 я поставил метод «get» и «set».

SharedURL.H (Class 3)

@interface SharedURL : NSObject {
 NSString *theURL;
}
-(NSString *)getTheURL;
-(void)setTheURL:(NSString *)blah;
@property (readwrite, copy) NSString  *theURL;
@end

Реализация:

#import "SharedURL.h"


@implementation SharedURL

@synthesize theURL;

-(NSString *)getTheURL;
{
 return theURL;

}
-(void)setTheURL:(NSString *)blah;
{
 theURL=blah;

}
@end

В классах 1 и 2: I Импортировать заголовок класса. Я установил переменную экземпляра следующим образом:

SharedURL * XMLURL;

Я определяю свойство следующим образом:

@property (readwrite, assign) SharedURL *XMLURL;

Затем в реализации я устанавливаю метод set следующим образом:

[XMLURL setTheURL:@"http://localhost:8888/xml/MyXMLFile.xml"];

Однако всякий раз, когда я реализую следующий код, метод getter возвращает nil.

NSLog (@ "URL-адрес% @", [XMLURL getTheURL]);

Как получить это, чтобы фактически сохранить введенную переменную и затем вернуть ее.Я смотрю на некоторый пример кода, и я не могу найти свою ошибку, мне кажется, что я делаю это совершенно нормально, я думаю, что пропускаю что-то глупое.

1 Ответ

0 голосов
/ 19 августа 2010

Если я правильно понимаю, что вы звоните в класс 3 из класса 1 или 2 (скажем, 1) и задаете URL, тогда вы переходите к классу 2 и запрашиваете только URL, верно?

Я думаю, что ваша проблема в том, что вы вызываете что-то, что является независимым для каждого объекта.Я думаю, что вы можете исправить это, вместо того, чтобы говорить -(NSString *)getTheURL и -(void)setTheURL, вам нужно изменить его на +(NSString *)getTheURL и +(void)setTheURL (как в файлах .h, так и в .m), чтобы оно не зависело от переменной.

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