繁体   English   中英

全局NSMutableString

[英]Global NSMutableString

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

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

有人可以帮我吗 我是Objective-C和Xcode的新手。 谢谢。 任何帮助深表感谢!

  1. 您可以将其设为您的应用程序委托的属性
  2. 您可以使用单身人士
  3. 您可以使用NSUserDefaults
  4. 您可以安排所有“感兴趣的对象”对象共享一些公用对象(在初始化过程中传递可寻址性),该公用对象包含指向您的字符串的字段

可能还有其他几个。

您可以为此使用NSUserDefaults:

保存:(在上一个视图类中加载下一个视图之前调用)

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:yourString forKey:@"KEYNAMEHERE"];
[defaults synchronize];

检索 (在下一个视图的类中加载下一个视图时调用)

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSMutableString *string = [defaults objectForKey:@"KEYNAMEHERE"];

另一种选择是拥有一个单例对象,如果您拥有多个不想要共享的变量,则特别有用。

这是有关正确处理单例的好帖子: 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

我个人发现此模式非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM