我正在尝试创建一个应用程序,2个类共享一个变量。为了让代码看起来更清洁,我创建了一个第三类。这个“第三类”唯一的工作就是容纳这个变量。
在第3课中,我使用了“get”和“set”方法。
SharedURL.H(第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级: 我导入类标题 我像这样设置了实例变量
SharedURL * XMLURL;
我像这样定义属性
@property (readwrite, assign) SharedURL *XMLURL;
然后在实现中我设置了这样的set方法
[XMLURL setTheURL:@"http://localhost:8888/xml/MyXMLFile.xml"];
然而,无论何时实施休眠代码,getter方法都会返回nil。
NSLog(@“url is%@”,[XMLURL getTheURL]);
我怎样才能实现保存我输入的变量然后返回它。我正在看一些示例代码,我找不到我的错误它看起来像我做得很好我认为我忽略了一些愚蠢的东西。
答案 0 :(得分:0)
如果我理解这一点你正在从第1级或第2级调用第3级(比方说1)并设置URL然后转到第2级并且只询问URL,对吗?
我认为你的问题是你正在调用每个对象独立的东西。我认为你可以解决这个问题而不是说-(NSString *)getTheURL
和-(void)setTheURL
你需要将它改为+(NSString *)getTheURL
和+(void)setTheURL
(在.h和.m文件中)它不依赖于变量。