최신 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를 쓰면 기본 설정자를 무시할 수 있습니다. 하나의 읽기 전용을 만들고 나서 혼란을 만들어 내 글을 쓰거나 읽을 필요가 없습니다. –