भिन्न हो सकती है क्या निम्न कथन सही है, या क्या मुझे कुछ याद आ रही है?NSJSONSerialization से लौटाई गई वस्तु
आप NSJSONSerialization
की वापसी वस्तु की जांच करने के अगर यह एक शब्दकोश या किसी सरणी है देखना है - आप
data = {"name":"joe", "age":"young"}
// NSJSONSerialization returns a dictionary
और
data = {{"name":"joe", "age":"young"},
{"name":"fred", "age":"not so young"}}
// returns an array
प्रत्येक प्रकार हो सकता है एक अलग अभिगम विधि है जो गलत पर इस्तेमाल होने पर तोड़ता है। उदाहरण के लिए:
NSMutableArray *jsonObject = [json objectAtIndex:i];
// will break if json is a dictionary
ताकि आप की तरह कुछ करने के लिए -
id jsonObjects = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers error:&error];
if ([jsonObjects isKindOfClass:[NSArray class]])
NSLog(@"yes we got an Array"); // cycle thru the array elements
else if ([jsonObjects isKindOfClass:[NSDictionary class]])
NSLog(@"yes we got an dictionary"); // cycle thru the dictionary elements
else
NSLog(@"neither array nor dictionary!");
मैं ढेर अतिप्रवाह और एप्पल प्रलेखन और अन्य स्थानों के माध्यम से एक नज़र डाली और इसके बाद के संस्करण के किसी भी प्रत्यक्ष पुष्टि नहीं पा सके ।
आप क्या समस्या अपने कोड के साथ चल रहा था का उल्लेख नहीं था। –
यदि आप एक शब्दकोश वापस पाने के लिए और इसे का उपयोग करने के लिए एक अपवाद फेंक दिया जाता है एक सरणी विधि का उपयोग समस्या है। मुझे लगता है कि आपको इसे ठीक करने के लिए रिटर्न ऑब्जेक्ट प्रकार की जांच करने की आवश्यकता है, लेकिन यह पुष्टि करना चाहेंगे कि यह करने का यह सही तरीका है। – user1705452