2009-03-19 12 views
4

iPhoneアプリの「設定」モデルを作成しました。 2つのプロパティと読み込み用のクラスメソッドと保存用の1つのインスタンスメソッドのみが含まれています。NSUserDefaultsを間違って使用していますか?

+ (UserSettings *)getCurrent { 
    NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults]; 
    UserSettings *settings = [UserSettings new]; 
    settings.username = [userPrefs stringForKey:kUserNameKey]; 
    settings.password = [userPrefs stringForKey:kPasswordKey]; 
    [userPrefs release]; 
    return settings; 
} 

NSUserDefaultで取り扱いが例外をキャストするという問題を次のように私はそれをロードします。

- [NSCFArray objectForKey:]:認識されていないセレクタインスタンスに 0x50b220

を送信し、私は次のように定義される定数で自分のヘッダをインポートしました。

#define kUserNameKey @"Username" 
#define kPasswordKey @"Password" 

(私はキーチェーンを認識してい以降のものに変更することを計画していますが、userdefaultsを解決したい)

答えて

7

あなたが保持していないか、または

+0

"standardUserDefaults"関数がそれを割り当てなければならないという印象を受けました。しかしそれは私の問題でした。ありがとう – ullmark

+0

経験則:それを割り当て、保持、またはコピーしてからリリースまたは自動リリースする場合にのみ – cobbal

+1

Objective-Cメモリ管理について知りたいことはすべてhttp://developer.apple.com/documentation/Cocoa/概念/ MemoryMgmt/MemoryMgmt.html – Chuck

0

どうallocedんので、[userPrefs release]を削除してみてくださいユーザー名/パスワード用に定義されたUserSettingsプロパティはありますか?文字列の場合は "コピー"に設定する必要があります。

関連する問題