我是iPhone开发的新手。我想在所有类方法中访问一个字符串变量,我想全局访问该字符串。我怎么能这样做?
请帮帮我。
答案 0 :(得分:15)
不考虑全局变量的问题以及它们是否是良好的编码实践......
在项目的.m
文件中的任何Objective-C类之外创建字符串:
NSString *myGlobalString = @"foo";
然后将声明放在头文件中,该文件包含在每个其他想要访问字符串的文件中:
extern NSString *myGlobalString;
好吧,好吧,我不能完全抛弃它。您是否考虑将“全局”字符串放在其他位置,可能在应用程序委托中作为(可能是只读的)属性?
答案 1 :(得分:2)
创建全局变量的首选方法是:
方法(2)的最大优点是它是封装的和可移植的。需要使用在另一个项目中使用global的类吗?只需使用变量和类一起移动类。
答案 2 :(得分:1)
您可以通过在委托类中实现getter和setter来实现这一目标。
在委托.h文件中
包括UIApplication委托
@interface DevAppDelegate : NSObject <UIApplicationDelegate>
NSString * currentTitle;
- (void) setCurrentTitle:(NSString *) currentTitle;
- (NSString *) getCurrentTitle;
在Delegate实现类.m
中 -(void) setCurrentLink:(NSString *) storydata{
currentLink = storydata;
}
-(NSString *) getCurrentLink{
if ( currentLink == nil ) {
currentLink = @"Display StoryLink";
}
return currentLink;
}
因此,要评估的变量是通过setters方法和类在currentlink字符串中设置的,只需使用getter方法。
一切顺利
答案 3 :(得分:0)
我发布了一篇关于我这样做的方法的文章:
http://www.pushplay.net/2011/02/quick-tip-global-defines/
这主要用于通知密钥。创建globals.h文件并将其添加到(your_project_name)_Prefix.pch文件将确保它可以全局访问...