首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局NSMutableString

全局NSMutableString
EN

Stack Overflow用户
提问于 2012-07-20 07:32:01
回答 3查看 559关注 0票数 0

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

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

谁能帮帮我。我是objective-c和xcode的新手。谢谢。任何帮助都是非常感谢的!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-20 07:58:31

另一种选择是使用单例对象,如果您希望共享多个变量,则此方法特别有用。

这里有一篇关于如何正确处理单例的好帖子:http://lukeredpath.co.uk/blog/a-note-on-objective-c-singletons.html

基本上,您需要编写一个非常简单的类,例如:

State.h:

代码语言:javascript
复制
@interface State : NSObject

@property (atomic, strong) NSMutableString *mystring;
+ (id)sharedInstance;

@end

State.m:

代码语言:javascript
复制
#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

然后当你需要它的时候,你可以这样做:

代码语言:javascript
复制
import "State.h"

[State sharedInstance].mystring

更简单的是,你可以从这里使用单例宏:https://gist.github.com/1057420#gistcomment-63896

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

票数 1
EN

Stack Overflow用户

发布于 2012-07-20 08:01:42

  1. 您可以将其设置为您的应用程序委托的属性
  2. 您可以使用一个单独的
  3. 您可以使用它可以安排所有“相关方”对象共享某个公共对象(在初始化过程中传递了可寻址能力),其中包含一个指向您的字符串的字段

可能还有其他几个。

票数 2
EN

Stack Overflow用户

发布于 2012-07-20 07:37:59

您可以使用NSUserDefaults来执行以下操作:

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

代码语言:javascript
复制
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:yourString forKey:@"KEYNAMEHERE"];
[defaults synchronize];

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

代码语言:javascript
复制
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSMutableString *string = [defaults objectForKey:@"KEYNAMEHERE"];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11570812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档