Iphone NSString变量在整个程序中可用
我有一行代码:Iphone NSString变量在整个程序中可用,iphone,objective-c,ios,nsstring,Iphone,Objective C,Ios,Nsstring,我有一行代码: NSString *dateString = [self.dates objectAtIndex:row]; 当用户在选择器中选择一行时设置。我希望这个代码在任何地方都可用,而不仅仅是在选择器选择区域。当然,我得到的另一个“dateString”是未声明的错误消息 我该怎么做呢 感谢您的帮助。一个简单但不是很优雅的解决方案是使用NSUserDefaults NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]
NSString *dateString = [self.dates objectAtIndex:row];
当用户在选择器中选择一行时设置。我希望这个代码在任何地方都可用,而不仅仅是在选择器选择区域。当然,我得到的另一个“dateString”是未声明的错误消息
我该怎么做呢
感谢您的帮助。一个简单但不是很优雅的解决方案是使用NSUserDefaults
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
[prefs synchronize];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
一个简单但不是很优雅的解决方案是使用NSUserDefaults
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
[prefs synchronize];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
在接口文件(.h)文件中定义为全局变量。如果要在其他类中使用,请创建属性并将其合成。在接口文件(.h)文件中定义为全局变量。如果您想在其他类中使用,请生成属性并合成它。使用此代码。您可以保存整个字符串。 只需创建的NSString对象 在(YourDelegare.h)文件中 NSString*日期字符串 在(YourDelegare.m)文件中
只要在需要的地方调用这些方法。使用此代码。您可以保存整个字符串。 只需创建的NSString对象 在(YourDelegare.h)文件中 NSString*日期字符串 在(YourDelegare.m)文件中
只要在需要的地方调用这些方法。或者您可以在委托文件中声明该变量 在
yourregate.h
中:
NSString *yourString;
@property (nonatomic, retain) NSString *yourString;
yourdelegate *appDelegate;
在yourdelegate.m
中:
@synthesize yourString;
appDelegate = [[UIApplication sharedApplication] delegate]; // in viewDidLoad
appDelegate.yourString = [self.dates objectAtIndex:row]; // where ever you need
在viewcontroller.h
中:
NSString *yourString;
@property (nonatomic, retain) NSString *yourString;
yourdelegate *appDelegate;
在viewcontroller.m
中:
@synthesize yourString;
appDelegate = [[UIApplication sharedApplication] delegate]; // in viewDidLoad
appDelegate.yourString = [self.dates objectAtIndex:row]; // where ever you need
而且,像magic一样,它现在是一个全局变量。或者您可以在代理文件中声明该变量 在
yourregate.h
中:
NSString *yourString;
@property (nonatomic, retain) NSString *yourString;
yourdelegate *appDelegate;
在yourdelegate.m
中:
@synthesize yourString;
appDelegate = [[UIApplication sharedApplication] delegate]; // in viewDidLoad
appDelegate.yourString = [self.dates objectAtIndex:row]; // where ever you need
在viewcontroller.h
中:
NSString *yourString;
@property (nonatomic, retain) NSString *yourString;
yourdelegate *appDelegate;
在viewcontroller.m
中:
@synthesize yourString;
appDelegate = [[UIApplication sharedApplication] delegate]; // in viewDidLoad
appDelegate.yourString = [self.dates objectAtIndex:row]; // where ever you need
而且,就像魔术一样,它现在是一个全局变量。为什么不使用单例设计模式呢?在我看来,这似乎是一个比上面发布的解决方案更干净的解决方案。
VariableStore.m
可变存储
要使用变量的任何类。m
为什么不使用单例设计模式?在我看来,这似乎是一个比上面发布的解决方案更干净的解决方案。
VariableStore.m
可变存储
要使用变量的任何类。m