2011-02-03 47 views
1

这是我想要做的。
我有一个名为userInfo的类。我在另一个名为LoginInfo的类中创建了这个对象的一个​​实例。我想保持这个instace活着,并为所有其他类访问,直到应用程序仍然活着...在应用程序中保持对象的活性 - 如何?

我如何实现这一目标?我读了一些地方,我可以做到这一点与单身人士班。但我不知道他们是什么...我是很新的cocoa..Please指南..提前

谢谢..


@interface UserInfo : NSObject { 
    NSString * firstName; 
    NSString * lastName; 
    NSString * uID; 
    NSString * password; 
    NSString * userType; 

} 

-(id)initWithFirstName:(NSString *)fname andLastName:(NSString *)lname andUID:(NSString *)userID andPassword:(NSString *)pwd andUserType:(NSString *)type; 
@property (readwrite, copy) NSString * firstName; 
@property (readwrite, copy) NSString * lastName; 
@property (readwrite, copy) NSString * uID; 
@property (readwrite, copy) NSString * password; 
@property (readwrite, copy) NSString * userType; 

@end 



#import "UserInfo.h" 


@implementation UserInfo 

-(id)initWithFirstName:(NSString *)fname andLastName:(NSString *)lname andUID:(NSString *)usid andPassword:(NSString *)pwd andUserType:(NSString *)type{ 
    self=[super init]; 
    if (self) { 
     self.firstName=fname; 
     self.lastName=lname; 
     self.uID=usid; 
     self.password=pwd; 
     self.userType=type; 
     } 
    return self; 
} 

@synthesize firstName; 
@synthesize lastName; 
@synthesize uID; 
@synthesize password; 
@synthesize userType; 


@end 

这是我想要做的类单身......请指导我做什么改变..我想使用自定义构造函数... M很抱歉把这段代码作为答案。但我无法在评论中得到它...

回答

1

这听起来的确像是对Singleton模式的小描述。实现Singleton的一种方法是通过类方法访问它的功能;这些类方法访问单个实例作为私有类成员,如果它尚未存在,则创建它。

我不能帮你与可可语法(Objective-C的,如果我没有记错),这里是一些伪代码来说明一个可能的实现:

class Singleton { 
    /* class member */ 
    private static Singleton instance = undef; 

    /* class methods */ 
    public static type1 doSomething() { 
     Singletong instance = Singleton::getInstance(); 
     return instance->reallyDoSomething(); 
    } 

    private static Singleton getInstance() { 
     if(!defined(Singleton::instance)) { 
      Singleton:instance = new Singleton(); 
     } 
     return Singleton::instance; 
    } 

    // instance method 
    private type1 reallyDoSomething() { 
     type1 result; 
     /* exciting stuff */ 
     return result; 
    } 
}; 
+0

您是如何使你的代码中的注释不同? – 2011-02-03 10:49:33

相关问题