0

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

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

有人可以帮我解决这个问题。我是objective-c和xcode的新手。谢谢你。任何帮助深表感谢!

4

3 回答 3

2
  1. 您可以使其成为您的应用程序委托的属性
  2. 您可以使用单例
  3. 您可以使用 NSUserDefaults
  4. 您可以安排所有“相关方”对象共享一些公共对象(在初始化期间传递可寻址性),其中包含指向您的字符串的字段

可能还有其他几个。

于 2012-07-20T00:01:41.847 回答
1

您可以为此使用 NSUserDefaults:

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

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

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

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSMutableString *string = [defaults objectForKey:@"KEYNAMEHERE"];
于 2012-07-19T23:37:58.730 回答
1

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

这是一篇关于正确处理单身人士的好帖子: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

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

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

于 2012-07-19T23:58:31.347 回答