我有一个选项卡式视图,我需要从不同的选项卡视图中选择各种选项,这些选项应该附加在同一个字符串中。为此,我想使用NSMutableString。
选择所有选项并根据需要形成字符串。我想在下一个没有选项卡的视图中访问此NSMutableString。我想为此我需要将NSMutableString声明为全局变量?
有人可以帮我解决这个问题。我是objective-c和xcode的新手。谢谢。非常感谢任何帮助!
答案 0 :(得分:2)
可能还有其他几个人。
答案 1 :(得分:1)
您可以使用NSUserDefaults:
保存:(在上一个视图类中加载下一个视图之前调用)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourString forKey:@"KEYNAMEHERE"];
[defaults synchronize];
要检索(在下一个视图的课程中加载下一个视图时调用)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableString *string = [defaults objectForKey:@"KEYNAMEHERE"];
答案 2 :(得分:1)
另一个选择是拥有一个单例对象,如果你想要共享一个以上的变量,这个对象特别有用。
这是关于做单身人士的好帖子:http://lukeredpath.co.uk/blog/a-note-on-objective-c-singletons.html
基本上你会写一个非常简单的类,如:
State.h:
@interface State : NSObject
@property (atomic, strong) NSMutableString *mystring;
+ (id)sharedInstance;
@end
State.m:
#import "State.h"
@implementation State
@synthesize mystring;
+ (id)sharedInstance
{
static dispatch_once_t pred = 0;
__strong static id _sharedObject = nil;
dispatch_once(&pred, ^{
_sharedObject = [[self alloc] init]; // or some other init method
});
return _sharedObject;
}
@end
然后无论何时需要,你都可以:
import "State.h"
[State sharedInstance].mystring
更简单的是,你可以从这里使用单身宏:https://gist.github.com/1057420#gistcomment-63896
我个人认为这种模式非常有用。