我正在開發與最新的SDK和XCode的iOS應用程序。設置一個新的值到一個NSString變量與以前的值
這是一個簡單的問題,但我不知道該怎麼做,因爲我不想在我的代碼上發生任何內存泄漏。
我使用我的項目ARC,我有以下的頭聲明:
@interface UserPreferences : NSObject
{
NSUserDefaults* prefs;
}
@property (nonatomic, readonly) NSString* appLanguage;
// More code
- (void) setAppLanguage:(NSString *)appLanguage;
// More code
@end
這就是我是如何實現的- (void) setAppLanguage:(NSString *)appLanguage;
。
- (void) setAppLanguage:(NSString *)newAppLanguage
{
[prefs setObject:appLanguage forKey:APP_LANGUAGE_KEY];
appLanguage = [NSString stringWithString:newAppLanguage];
}
是appLanguage = [NSString stringWithString:newAppLanguage];
是否正確?
我不知道appLanguage
將有一個值,當我設置一個新的。
我的代碼是否正確?
如果appLanguage是NSString,newAppLanguage也是NSString,你不需要做stringWithString :,你可以等同於two.appLanguage = newAppLanguage; – Divya
當我爲它設置一個新的應用程序時,'appLanguage將會有一個值。'是的,它會有,並且新的值將替換它以前的值。你可以簡單地寫'@property(strong)NSString * appLanguage;'和你的setAppLanguage來覆蓋默認的setter。沒有必要使一個只讀,然後造成混亂,我寫它+讀。 –