Global NSMutableString



我有一个选项卡视图,需要从不同的选项卡视图中选择各种选项,这些选项应该附加在同一字符串中。为此,我想使用一个NSMutableString。

选择所有选项并根据需要形成字符串之后。我想在下一个没有选项卡的视图中访问此NSMutableString。我认为为此我需要将NSMutableString声明为全局变量?

有人能帮我做这个吗。我是objective-c和xcode的新手。非常感谢。非常感谢您的帮助!

  1. 您可以将其作为应用程序委派的属性
  2. 您可以使用singleton
  3. 您可以使用NSUserDefaults
  4. 您可以安排所有"感兴趣的一方"对象共享某个公共对象(在初始化期间传递可寻址性),该对象包含指向字符串的字段

可能还有其他几个。

另一种选择是拥有一个singleton对象,如果您想要共享多个变量,那么它尤其有用。

下面是一篇关于单身人士正确行为的好帖子:http://lukeredpath.co.uk/blog/a-note-on-objective-c-singletons.html

基本上,你必须写一个非常简单的类,比如:

州.h:

@interface State : NSObject
@property (atomic, strong) NSMutableString *mystring;
+ (id)sharedInstance;
@end

状态.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

更简单的是,您可以从这里使用singleton宏: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"];

相关内容

  • 没有找到相关文章

最新更新