我想創建一個應用程序,共有2個類共享一個變量。爲了讓代碼看起來更清潔一點,我創建了第三個類。這個「三等」唯一的工作就是容納這個變量。在另一個類中設置一個變量
在3類我把「得到」和「設置」方法。
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;
然後在執行我設置這樣的
[XMLURL setTheURL:@"http://localhost:8888/xml/MyXMLFile.xml"];
的一套方法。然而,每當我實行休耕代碼getter方法返回nil。
的NSLog(@ 「的URL是%@」,[XMLURL getTheURL]);
我如何能得到這個實際保存,我稱輸入,然後返回它的變量。我正在看一些示例代碼,我找不到我的錯誤,它看起來像我這樣做完全沒問題,我想我忽略了一些愚蠢的東西。
但是,如果我將這些設置爲靜態類,我無法訪問我用來存儲該值的實例變量? – 2010-08-19 16:31:09
不要讓它成爲ivar在實例之前聲明它,然後使它成爲'static NSString * theURL'。 – 2010-08-19 17:28:14
我有類似的問題,它說「實例變量'theURL'在類方法訪問」 – 2011-08-08 02:44:17