Pytanie w sprawie objective-c, cocoa-touch, iphone – Metoda instancji '-jsonValue' nie została znaleziona (typ powrotu domyślnie to 'id')

1

Mam problem w poniższym oświadczeniu.

<code> NSArray *feedsData = [strFeedsResponse JSONValue];
</code>
Jaki jest typstrFeedsResponse? Popraw trochę swoje pytanie. Ondrej Peterka
jaki błąd otrzymujesz? Hector

Twoja odpowiedź

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

taki sam problem... Pradeep
@Pepep co jest co? yoozer8
Lub Użyj tej linii również NSArray * feedsData = (NSArray *) [strFeedsResponse JSONValue]; Prakash
1

strFeedsResponse nie jest rzeczywiście instancją NSString. Może jest zerowa lub została zainicjowana z niepoprawną wartością. Możesz dodać punkt przerwania do swojego kodu, aby sprawdzić wartość przechowywaną w strFeedsResponse przed wywołaniem na nim JSONValue.

Nie zaimportowałeś poprawnie struktury JSON, której używasz do swojej klasy. Musisz dodać nagłówek JSON do swojej klasy.

0

spróbuj w ten sposób ...

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

JSONValue funkcja nie została znaleziona.
Upewnij się, że włączyłeś pliki nagłówkowe json, do których dzwonisz.

2

strFeedsResponse jest przykłademNSString. Nie ma takiej metody jakJSONValue wNSString. Potrzebujesz NSStringKategoria i dodajJSONValue metoda tam.

Możesz użyć na przykładSBJson bibliotekahttps://github.com/stig/json-framework/, który zawiera nagłówek NSString + SBJson.h, który dodajeJSONValue metoda dla NSString.

Ten nagłówek musi być importowany do pliku źródłowego, w którym chcesz użyćJSONValue metoda:

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

Więcej o kategoriach na przykład tutaj:http://macdevelopertips.com/objective-c/objective-c-categories.html

1

Powodem błędu jest to, że obecna wersja SBJson wydaje się nie zawierać kategorii NSString „NSString + SBJSON.h”, do której odnosi się wcześniejszy plakat. Możesz więc łatwo napisać własny lub użyć bezpośrednio klasy SBJsonParser („adres” to po prostu NSString zawierający coś w rodzaju „24 Elm Street, Yourtown, New Mexico”):

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

Twoje zdrowie!

Powiązane pytania