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

もう1つのオプションは、シングルトンオブジェクトを使用することです。これは、共有する変数が複数ある場合に特に便利です。

シングルトンを正しく行うことについての良い投稿があります: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

私は個人的にこのパターンが非常に役立つことを発見しました。

于 2012-07-19T23:58:31.347 に答える