Global NSMutableString
我有一个选项卡式视图,我需要从不同的选项卡式视图中选择不同的选项,这些选项应该附加在同一个字符串中。为此,我想使用一个NSMutableString。Global NSMutableString
选择所有选项后,根据需要形成字符串。我想在未选中的下一个视图中访问此NSMutableString。我想为此我需要将NSMutableString声明为全局变量?
有人可以帮助我这个。我是新来的Objective-C和Xcode。谢谢。任何帮助深表感谢!
另一种选择是将一个单一eton对象,如果你不只有一个你想要共享的变量,那么这个对象特别有用。
下面是关于做单身权好的帖子: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
我个人认为这种模式是非常有用的。
你可以使用NSUserDefaults的这个:
为了节省:(在以前的视图类加载下一个视图之前调用)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourString forKey:@"KEYNAMEHERE"];
[defaults synchronize];
要检索(打电话的时候,下一个视图中加载下一个视图的类)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableString *string = [defaults objectForKey:@"KEYNAMEHERE"];
谢谢! SO setobject:yourstring - 其中“yourstring”应该是NSMutableString类型的变量名? – 2012-07-19 23:40:34
是的,而KEYNAMEHERE是一个关键字的名称(可以是任何东西,只是让它描述对象是什么,所以可能类似'globalString')。 – 2012-07-19 23:41:45
非常感谢!让我试试这个,回到你身边! – 2012-07-19 23:43:17
- 你可以使你的应用程序代理
- 的属性可以使用一个单
- 你可以使用NSUserDefaults的
- 你可以安排所有的“利害关系人”的对象分享一些共同的包含指向字符串的字段的对象(在初始化过程中通过可寻址性)
可能还有其他几个。
我需要导入“State.h”在哪里使用? – 2012-07-26 13:17:15
哦对,是的,在任何你想访问''State sharedInstance''的类中,都需要导入'State.h''。 – timofei7 2012-07-26 21:53:55