2016-12-06 2 views
0

Ich habe eine Klasse (Modell) in Swift geschrieben und ich möchte es von Objective C-Klasse zugreifen, aber ich kann nicht.Zugriff auf Eigenschaften von Swift-Klasse in Array

Um mehr zu erklären, habe ich ein Array, das mit Wörterbüchern aus dem in Swift geschriebenen Modell angehängt wird.

Modell sieht wie folgt aus:

@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 
} 

} 

Dieses Wörterbuch, das von diesem Modell fein gefüllt ist und alles funktioniert gut, solange ich es aus der Klasse geschrieben in Swift zugreifen. Das Problem tritt auf, wenn ich versuche, auf dieses Array von Wörterbüchern zuzugreifen und auf die Eigenschaften zuzugreifen. Die folgende Anweisung funktioniert einwandfrei, wenn ich auf den Namen zugreifen möchte.

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

Aber wenn ich versuche ValueForKey zuzugreifen: @ „id“ es gibt mir eine Fehlermeldung wie diese „Diese Klasse ist nicht Schlüssel-Wert-Codierung-konform für den Schlüssel-ID.“

Kann mir jemand dabei helfen?

Vielen Dank im Voraus!

+1

Aus Neugier, wenn Sie die Eigenschaft auf etwas anderes als 'id' umbenennen funktioniert es? – sbooth

+0

@sbooth Ich habe das versucht, aber es funktioniert nicht – Srdjan

+0

Haben Sie [gesehen] (http://stackoverflow.com/questions/24221407/can-a-swift-optional-int-int-be-exposed-to-objektive -c-via-überbrückung)? – paulvs

Antwort

0

sollten Sie Ihre Eigenschaften (id und Name) werden öffentlich machen und versuchen, es auf diese Weise ohne Key-Wert Codierung zuzugreifen:

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

Danke für Hilfe, Antwort ist auf diesem [link] (http://stackoverflow.com/questions/24221407/can-a-swift-optional-int-int-be-exposed-to-objective-c-via-bridging) – Srdjan

Verwandte Themen