Frage an objective-c, iphone, cocoa-touch – Instanzmethode '-jsonValue' nicht gefunden (Rückgabetyp ist standardmäßig 'id')

1

Ich habe ein Problem mit der folgenden Aussage.

<code> NSArray *feedsData = [strFeedsResponse JSONValue];
</code>
Was ist die Art vonstrFeedsResponse? Verbessere deine Frage ein bisschen. Ondrej Peterka
welchen fehler bekommst du Hector

Deine Antwort

6   die antwort
0

wenn die Methode nicht gefunden wurdeJSONValue Funktion wird nicht gefunden.
Stellen Sie sicher, dass Sie json-Header-Dateien enthalten haben, in denen Sie diese Funktion aufrufen.

2

strFeedsResponse ist eine Instanz vonNSString. Es gibt keine Methode wieJSONValue imNSString. Du brauchst NSStringKategorie und fügen Sie dieJSONValue Methode dort.

Sie können zum Beispiel verwendenSBJson Bibliothekhttps://github.com/stig/json-framework/, der den Header NSString + SBJson.h enthält, der dasJSONValue Methode für NSString.

Dieser Header muss dann in die Quelldatei importiert werden, in der Sie den verwenden möchtenJSONValue Methode:

<code>#import NSString+SBJSON.h
</code>

Mehr über Kategorien zum Beispiel hier:http://macdevelopertips.com/objective-c/objective-c-categories.html

1

Der Grund für den Fehler ist, dass die aktuelle Version von SBJson anscheinend nicht die NSString-Kategorie "NSString + SBJSON.h" enthält, auf die in einem früheren Poster verwiesen wird. Sie können also leicht Ihre eigene schreiben oder einfach die SBJsonParser-Klasse direkt verwenden ("address" ist nur ein NSString, der etwas wie "24 Elm Street, Yourtown, New Mexico" enthält):

<code>NSString     *esc_addr       = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString     *req            = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
NSString     *response       = [NSString stringWithContentsOfURL: [NSURL URLWithString: req] encoding: NSUTF8StringEncoding error: NULL];
SBJsonParser *parser         = [[SBJsonParser alloc] init];
NSDictionary *googleResponse = [parser objectWithString:response];
</code>

Prost!

0
<code> NSArray *feedsData = [[strFeedsResponse JSONValue] mutableCopy];
</code>

@Pradeep was ist was? yoozer8
gleiches Problem... Pradeep
Oder verwenden Sie in dieser Zeile auch NSArray * feedsData = (NSArray *) [strFeedsResponse JSONValue]; Prakash
0

versuche es so ...

<code>NSArray* latestentry = (NSDictionary*)[responseString JSONValue];
</code>
1

strFeedsResponse ist eigentlich keine Instanz eines NSString. Möglicherweise ist es null oder es wurde mit einem falschen Wert eingeleitet. Sie können Ihrem Code einen Haltepunkt hinzufügen, um den in strFeedsResponse gespeicherten Wert zu überprüfen, bevor Sie JSONValue aufrufen.

Sie haben das von Ihnen verwendete JSON-Framework nicht korrekt in Ihre Klasse importiert. Sie müssen der Klasse den JSON-Header hinzufügen.

Verwandte Fragen