2013-08-06 4 views
-5

Не могли бы вы помочь. У меня есть много разных экономии как этотЦель c функция с переменной

SaveFBProfilePicture1 = ProfilePicture1.stringValue; 

DefaultProfilePicture1 = [NSUserDefaults standardUserDefaults]; 
[DefaultProfilePicture1 setObject:SaveFBProfilePicture1 forKey:@"SaveProfilePicture1"]; 
[DefaultProfilePicture1 synchronize]; 

SaveFBProfilePicture2 = ProfilePicture2.stringValue; 
DefaultProfilePicture2 = [NSUserDefaults standardUserDefaults]; 
[DefaultProfilePicture2 setObject:SaveFBProfilePicture2 forKey:@"SaveProfilePicture2"]; 
[DefaultProfilePicture2 synchronize]; 

SaveFBAlbums2 = Albums2.stringValue; 
DefaultAlbums2 = [NSUserDefaults standardUserDefaults]; 
[DefaultAlbums2 setObject:SaveFBAlbums2 forKey:@"SaveAlbums2"]; 
[DefaultAlbums2 synchronize]; 

SaveFBAbout1 = About1.stringValue; 
DefaultAbout1 = [NSUserDefaults standardUserDefaults]; 
[DefaultAbout1 setObject:SaveFBAbout1 forKey:@"SaveAbout1"]; 
[DefaultAbout1 synchronize]; 

SaveFBAbout2 = About2.stringValue; 
DefaultAbout2 = [NSUserDefaults standardUserDefaults]; 
[DefaultAbout2 setObject:SaveFBAbout2 forKey:@"SaveAbout2"]; 
[DefaultAbout2 synchronize]; 

И я не знаю, как можно создать функцию для этого.

мне нужно иметь функцию

- (void)SaveFB { 
SaveFBxy = xy.stringValue; 
Defaultxy = [NSUserDefaults standardUserDefaults]; 
[Defaultxy setObject:SaveFBxy forKey:@"Savexy"]; 
[Defaultxy synchronize];} 

Где я могу easiely изменить «х», например, «О» или «Альбомы» и «у» в «1» или «2»

Пожалуйста, помогите мне. И спасибо вам заранее!

+0

Создать функция означает ???? Что вам нужно точно? –

+0

-1 не понимаю, что ваш после. Пожалуйста, предоставьте более подробную информацию, также это не имеет никакого отношения к 'xcode' – Popeye

+0

. Info info –

ответ

1
- (void)SaveFB:(NSString *)x:(NSString *)y 
{ 
    NSString *value=[NSString stringWithFormat:@"%@%@",x,y]; 
    NSString *key=[NSString stringWithFormat:@"Save%@%@",x,y]; 
    NSUserDefaults *defaultxy = [NSUserDefaults standardUserDefaults]; 
    [defaultxy setObject:value forKey:key]; 
    [defaultxy synchronize]; 
} 
+0

Пожалуйста, объясните свой ответ. Ответы с просто кодом не очень хорошие, если они сами не объясняют, поэтому, пожалуйста, предоставьте объяснение в своем ответе не в комментариях – Popeye

0

Казалось бы, это довольно простой;

void setUserDefault(NSString* key, NSString* value) { 
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    [userDefaults setObject:value forKey:key]; 
    [userDefaults synchronize]; 
} 

... или как метод класса;

+ (void) setUserDefault:(NSString*)key toValue:(NSString*)value { 
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    [userDefaults setObject:value forKey:key]; 
    [userDefaults synchronize]; 
} 

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

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
[userDefaults setObject:ProfilePicture1.stringValue forKey:@"SaveProfilePicture1"]; 
[userDefaults setObject:ProfilePicture2.stringValue forKey:@"SaveProfilePicture2"]; 
[userDefaults setObject:Albums2.stringValue forKey:@"SaveAlbums2"]; 
[userDefaults setObject:About1.stringValue forKey:@"SaveAbout1"]; 
[userDefaults setObject:About2.stringValue forKey:@"SaveAbout2"]; 
[userDefaults synchronize]; 

(синхронизация также автоматически вызывается периодически, так что вы, возможно, не нужно вообще, если вы делаете это право на приложение выхода)

+0

Большое спасибо, но можно ли как-то делить @ SaveProfilePicture1 на« SaveProfilePicture »и« 1 », чтобы иметь универсальный функция, потому что мне нужно сохранить «SaveProfilePicture1», «SaveProfilePicture2», «SaveAbout1». –

+0

И прошу прощения за мой английский. Я не говорю по-русски. –

+0

@ ЕвгенийМитько Я не совсем уверен, как вы хотите, чтобы вызовы функции выглядели, не могли бы вы привести пример того, как вы хотели бы использовать его? –