2016-04-25 10 views
-2

私はユーザオブジェクトの配列を持っていますが、そのうちの1つはプロパティ_selectedUserに格納されています。私はそれをログアウトすると、それはのように表示されます。iOS:配列内の属性の値を取得する構文ですか?

{ 
    uid = 5; 
    uname = xxxx; 
} 

私は次のようにUIDをアクセスしようとすると、しかし、私はエラーを取得する:

NSNumber *useridnum = _selectedUser.uid; 

エラー:

[NSKnownKeysDictionary1 uid]: unrecognized selector sent to instance

uidの値を取得する正しい構文は何ですか?

+0

selectedUserは実際には辞書ですか? _selectedUser [@ "uid"]は動作しますか? –

+0

どのアレイですか?あなたには辞書があります。 '_selectedUser'の値を作成して割り当てるコードで質問を更新してください。 – rmaddy

答えて

2

このキーには値としてではなく、辞書のプロパティとしてキーにアクセスしようとしています。

NSNumber *useridnum = _selectedUser[@"uid]; 

または::あなたは、オブジェクトがNSManagedObjectであることをコメントで言っ

NSNumber *useridnum = [_selectedUser objectForKey:@"uid"]; 

D.C.はコメントで示唆したように

は、このコードを使用します。私はコアデータに慣れていないんだけど、あなたはvalueForKey:を使用する必要があるように見えます:

NSNumber *useridnum = [_selectedUser valueForKey:@"uid"]; 

NSDictionaryをプロパティとして直接鍵を格納しません。それを何らかのプライベートなデータ構造で保存します。ランタイムを邪魔することなくキーをプロパティとして動的に格納することは不可能であり、鍵はC識別子でなければならないため、(基本的にすべてのオブジェクトではなく)キーとして使用できます。 。

プロパティとしてキーにアクセスしようとすると、プロパティのgetterメソッドを呼び出すというメッセージがオブジェクトからシステムに送信されましたが、getterメソッドが存在しないため、アプリケーション墜落した

+0

現在の辞書ではありません。これは、ユーザーのNSManagedObjectです。 – zztop

+1

@zztopあなたはその質問にそれを指定しておくべきです。私はCore Dataに慣れていませんが、ドキュメントを見ると、あなたは 'valueForKey:'を使う必要があるようです。 – NobodyNada

+0

質問に答える時間をとってくれてありがとう。私はvalueforkeyで遊んでいきます。 – zztop

関連する問題