2016-12-06 4 views
0

私はSwiftで書かれたクラス(モデル)を持っていますが、Objective Cクラスからアクセスしたいのですが、できません。配列内のswiftクラスのプロパティにアクセスする

さらに詳しく説明すると、Swiftで書かれたモデルの辞書が追加されています。

モデルは次のようになります。

@objc class GoalPreviewModel: NSObject { 
var id : Int? 
var name : String? 

init(dictionary: NSDictionary) { 
    self.id = dictionary["id"] as? Int 
    self.name = dictionary["name"] as? String 
} 

} 

この辞書は、このモデルで罰金満たされていると、すべてが罰金限り、私はスウィフトで書かれたクラスからアクセスしています動作します。この問題は、辞書の配列にアクセスしてプロパティにアクセスしようとしたときに発生します。 名前にアクセスしたいときは以下の文がうまくいきます。

[_nameLabel setText:[(NSString*) [[AppState sharedInstance].arrayOfDicts objectAtIndex:idx] valueForKey:@"name"]]; 

しかし、私はvalueForKeyにアクセスしようとすると:「ID」@それは私にこの のようなエラーが発生しますが、「このクラスは、キーIDのキー値コーディングに準拠していません。」

誰か助けてもらえますか?

ありがとうございます!

あなたはあなたの特性(idとname)を作成、公開することと、そのようにキー値コーディングなしでそれにアクセスしようとする必要があり
+1

好奇心のうち、それは動作しますか? – sbooth

+0

@sbooth私はそれを試みたが、それは仕事をdoesntする – Srdjan

+0

[これを見たことがありますか?](http://stackoverflow.com/questions/24221407/can-a-swift-optional-int-int-be-exposed-to-objective -c-via-bridging)? – paulvs

答えて

0

:あなたはid` `以外にプロパティの名前を変更する場合

[_nameLabel setText:(NSString*)[[AppState sharedInstance].arrayOfDicts 
         objectAtIndex:idx]name]]; 
+0

助けていただきありがとうございます。この回答はこちら[link](http://stackoverflow.com/questions/24221407/can-a-swift-optional-int-int-be-exposed-to-objective-c-via-bridging ) – Srdjan

関連する問題