我有一個選項卡式視圖,我需要從不同的選項卡式視圖中選擇不同的選項,這些選項應該附加在同一個字符串中。爲此,我想使用一個NSMutableString。Global NSMutableString
選擇所有選項後,根據需要形成字符串。我想在未選中的下一個視圖中訪問此NSMutableString。我想爲此我需要將NSMutableString聲明爲全局變量?
有人可以幫助我這個。我是新來的Objective-C和Xcode。謝謝。任何幫助深表感謝!
我有一個選項卡式視圖,我需要從不同的選項卡式視圖中選擇不同的選項,這些選項應該附加在同一個字符串中。爲此,我想使用一個NSMutableString。Global NSMutableString
選擇所有選項後,根據需要形成字符串。我想在未選中的下一個視圖中訪問此NSMutableString。我想爲此我需要將NSMutableString聲明爲全局變量?
有人可以幫助我這個。我是新來的Objective-C和Xcode。謝謝。任何幫助深表感謝!
另一種選擇是將一個單一eton對象,如果你不只有一個你想要共享的變量,那麼這個對象特別有用。
下面是關於做單身權好的帖子: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
我個人認爲這種模式是非常有用的。
你可以使用NSUserDefaults的這個:
爲了節省:(在以前的視圖類加載下一個視圖之前調用)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourString forKey:@"KEYNAMEHERE"];
[defaults synchronize];
要檢索(打電話的時候,下一個視圖中加載下一個視圖的類)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableString *string = [defaults objectForKey:@"KEYNAMEHERE"];
謝謝! SO setobject:yourstring - 其中「yourstring」應該是NSMutableString類型的變量名? – 2012-07-19 23:40:34
是的,而KEYNAMEHERE是一個關鍵字的名稱(可以是任何東西,只是讓它描述對象是什麼,所以可能類似'globalString')。 – 2012-07-19 23:41:45
非常感謝!讓我試試這個,回到你身邊! – 2012-07-19 23:43:17
可能還有其他幾個。
我需要導入「State.h」在哪裏使用? – 2012-07-26 13:17:15
哦對,是的,在任何你想訪問''State sharedInstance''的類中,都需要導入'State.h''。 – timofei7 2012-07-26 21:53:55