Objective c 全局NSString
我需要创建一个NSString,这样我就可以在一个类中设置它的值,然后在另一个类中获取它。我该怎么做?将其设置为全局变量 在全局范围内的一个文件中:Objective c 全局NSString,objective-c,nsstring,Objective C,Nsstring,我需要创建一个NSString,这样我就可以在一个类中设置它的值,然后在另一个类中获取它。我该怎么做?将其设置为全局变量 在全局范围内的一个文件中: NSMutableString *myString = @"some funny string"; 在另一个文件中: extern NSMutableString *myString; 如果你写: NSString *globalString = @"someString"; 方法、类定义、函数等之外的任何位置。。。它可以在任何地方被引
NSMutableString *myString = @"some funny string";
在另一个文件中:
extern NSMutableString *myString;
如果你写:
NSString *globalString = @"someString";
方法、类定义、函数等之外的任何位置。。。它可以在任何地方被引用。(它是全球性的!)
访问它的文件将声明它为外部文件
extern NSString *globalString;
此声明表示正在从另一个文件访问它。如果要创建全局
NSString
变量,则应使用类方法
在MyClass.h
中:
@interface MyClass : NSObject {}
+ (NSString *)myGlobalVariable;
+ (void)setMyGlobalVariable:(NSString *)val;
@end
在MyClass.m
中:
@implementation MyClass
NSString *myGlobalVariable = @"default value";
+ (NSString *)myGlobalVariable {
return myGlobalVariable;
}
+ (void)setMyGlobalVariable:(NSString *)val {
myGlobalVariable = val;
}
@end
我想你应该用单身汉。讨论这一点的一篇好文章是
关于单例类的其他信息在请记住,您应该记住内存分配和释放。这与全局int值不同-您需要使用任何NSObject管理内存
反复将全局字符串设置为新字符串将导致泄漏。通过线程访问将产生各种各样的问题。然后是关机,最后一个字符串仍然存在。完整iPhone项目/应用程序的全局NSString变量 要声明/定义/使用全局变量,请执行以下简单步骤:-
在运行时是否需要更改字符串?所有全局字符串和单例的解决方案都是因为问题提到了它。如果问题仅仅是在受限用途下创建/更改字符串,那么完全有可能对对象的属性执行此操作。通知是另一种方式。KVO是另一种方式你甚至可以使用授权。问题中没有足够的信息,无法提供经过深思熟虑的答案。它是有效的!但我需要删除步骤4和5。我不知道为什么,但我成功了。