iPhone поможет с синглтон-классом - PullRequest
0 голосов
/ 18 февраля 2011

Привет,

Я смотрю на макрос Мэтта Галлахера для создания одноэлементных классов.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

Ответы [ 3 ]

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

Хорошо, мне удалось решить эту проблему самостоятельно с помощью Джима ...

//.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
1 голос
/ 18 февраля 2011

Нужно ли создавать три одноэлементных класса со статической переменной в каждом?

Нет.Просто создайте тот, который имеет все три.

Кроме того, как мне получить и установить строковые переменные uname, details и selectedDetails?

Вы получаете ссылку на свой синглтонобычно с чем-то вроде следующего:

MySingleton *singleton = [MySingleton sharedInstance];

Затем вы используете его, как любой другой объект:

singleton.uname = @"Example";

Вы уверены, что вам действительно нужен синглтон?Если это пользовательские данные, как насчет хранения их с NSUserDefaults?

0 голосов
/ 25 марта 2013
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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...