问候,
我正在研究Matt Gallagher创建单例类的宏。 http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
基本上,我有一个包含多个视图的应用程序,我希望能够使用单例类从这些视图中访问“全局”数据。
我基本上有三个我想在这个类中访问的字符串:NSString * uname,NSString * details和NSString * selectedDetails。
我是否需要在每个类中使用静态变量制作三个单例类?
另外,如何获取和设置字符串变量uname,details和selectedDetails?
我有点混淆所有这些单身人士的东西(我今天才遇到这样的事情!)我想知道是否有人能指出我正确的方向。
非常感谢,
以下是我完成的一些代码:
#import <Foundation/Foundation.h>
@interface Details : NSObject{
}
+(XXX *)sharedXXX;
@end
#import "Details.h"
#import "SynthesizeSingleton.h"
@implementation Details
SYNTHESIZE_SINGLETON_FOR_CLASS(XXX);
@end
答案 0 :(得分:1)
我是否需要在每个类中使用静态变量制作三个单例类?
没有。只需创建一个包含所有三个的。
另外,如何获取和设置字符串变量uname,details和selectedDetails?
您可以获得对单身人士的引用,通常使用以下内容:
MySingleton *singleton = [MySingleton sharedInstance];
然后你像使用任何其他对象一样使用它:
singleton.uname = @"Example";
你确定你真的需要单身吗?如果是用户数据,请将其与NSUserDefaults
一起存储?
答案 1 :(得分:1)
好的,我在Jim的帮助下自己解决了这个问题......
//.h:
import <Foundation/Foundation.h>
@interface Details : NSObject {
NSString *global_uname;
NSString *global_details;
NSString *global_selectedDetails;
}
@property (nonatomic,retain) NSString *global_uname,*global_details,*global_selectedDetails;
+(Details*) sharedDetails;
@end
//.m:
#import "Details.h"
#import "SynthesizeSingleton.h"
@implementation Details
SYNTHESIZE_SINGLETON_FOR_CLASS(Details);
@synthesize global_uname,global_details,global_selectedDetails;
@end
然后你得到/设置使用:
[Details sharedDetails].global_uname
答案 2 :(得分:-1)
T1=[[UITextField alloc] init];
T2=[[UITextField alloc] init];
T3=[[UITextField alloc] init];
T4=[[UITextField alloc] init];
[T1 addTarget:self action:@selector(goto:) forControlEvents:UIControlEventEditingDidEndOnExit];
[T2 addTarget:self action:@selector(goto:) forControlEvents:UIControlEventEditingDidEndOnExit];
[T3 addTarget:self action:@selector(goto:) forControlEvents:UIControlEventEditingDidEndOnExit];
[T4 addTarget:self action:@selector(goto:) forControlEvents:UIControlEventEditingDidEndOnExit];
T1.backgroundColor=[UIColor whiteColor];
T2.backgroundColor=[UIColor whiteColor];
T3.backgroundColor=[UIColor whiteColor];
T4.backgroundColor=[UIColor whiteColor];
T1.placeholder=@"companyname";
T2.placeholder=@"address";
T3.placeholder=@"contactno";
T4.placeholder=@"noofemp";
T1.frame=CGRectMake(60, 0, 100, 30);
T2.frame=CGRectMake(60, 60, 100, 30);
T3.frame=CGRectMake(60, 110, 100, 30);
T4.frame=CGRectMake(60, 160, 100, 30);