簡體   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