2012-03-03 3 views
1

Я новичок в объективе-c, и мне просто интересно, как мне это сделать? Смогу ли я создать константу и просто заполнить ее?Создание переменной, которая в конечном итоге будет содержать кусочек данных, который будет использоваться всеми методами

Пример

У меня есть NSString дата *. Я извлекаю некоторые данные из Интернета, и теперь у меня есть дата, которую я хочу в этой переменной. Я хочу иметь возможность использовать эту NSString в любое время, не вызывая метод, который возвращает его в любой области моей программы.

Заранее благодарен!

Решил использовать одиночек на основе ответа ...

Где бы я поставил код, чтобы получить дату из Интернета, что переменная будет содержать? Это будет здесь?

static SingletonClass *sharedInstance = nil; 

    // Get the shared instance and create it if necessary. 
    + (SingletonClass *)sharedInstance { 
if (sharedInstance == nil) { 
    sharedInstance = [[super allocWithZone:NULL] init]; 
} 

//Put Code here?? 

return sharedInstance; 
    } 

ответ

0

Вы можете использовать шаблон Singleton. Here - это учебник. Когда вы его определяете, вы можете установить переменную NSString * date как свойство singleton и использовать ее.

EDIT Если вам нужно получить данные из Интернета только один раз - поместить ваш код

if (sharedInstance == nil) { 
    sharedInstance = [[super allocWithZone:NULL] init]; 
    //here 
} 

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

- (NSString *)myDate { 
NSString *date; 
//here 
return date; 
} 
+0

будет смотреть на это прямо сейчас, спасибо за быстрый ответ! – jamesHoward

+0

Отредактированный пост, если хотите, просто получил быстрый вопрос – jamesHoward

+0

См. Мой обновленный ответ –

0

если все ваше делание хранит одну переменные даты, я предложил бы использовать NSUserDefaults. если вы используете синглтон, тогда вам придется постоянно сохранять данные между запусками. и NSUserDefaults - одноэлементный. Если вы создадите синглтон, тогда вы создадите другой класс и так далее.

для хранения:

NSDate *updateDate = [NSDate date]; 
[[NSUserDefaults standardUserDefaults] updateDate forKey:@"lastUpdateDate"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

получить:

NSDate *updateDate = [[NSUserDefaults standardUserDefaults] dateForKey:@"lastUpdateDate"]; 
Смежные вопросы