Поддержание объекта в приложении. Как? - PullRequest
1 голос
/ 03 февраля 2011

Вот что я хочу сделать ..
У меня есть класс с именем userInfo.Я создаю экземпляр этого объекта в другом классе с именем LoginInfo.Я хочу, чтобы это приложение было живым и доступным для всех других классов, и до того момента, пока приложение не станет активным ...

Как мне этого добиться?Я где-то читал, что я могу сделать это с синглтон-классами.Но я понятия не имею, что они ... Я довольно новичок в какао .. Гид, пожалуйста ..

Заранее спасибо ..


@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

Это классЯ хочу сделать синглтон .... Пожалуйста, ознакомьтесь с тем, какие изменения я должен сделать ... Я хочу использовать пользовательский конструктор ... Извините, что поставил этот код в качестве ответа.Но я не смог получить это в комментарии ...

Ответы [ 2 ]

5 голосов
/ 03 февраля 2011
1 голос
/ 03 февраля 2011

Это действительно похоже на небольшое описание синглтон-паттерна. Один из способов реализации Singleton - получить доступ к его функциям через методы класса; эти методы класса обращаются к единственному экземпляру как к частному члену класса, создавая его, если его там еще нет.

Я не могу помочь вам с синтаксисом какао (target-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;
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...