2015-10-19 5 views
16

मैंने आईडी नंबर की जांच करने के लिए Baidu का इंटरफ़ेस बुलाया था, हालांकि सेक्स के मूल्य को जेएसओएन में एम के आसपास "" के बिना वापस किया गया था, जब मैं इसे संग्रहीत करने के लिए मॉड्यूल में एनएसएसटींग का उपयोग करता हूं और फिर इस सेक्स प्रॉपर्टी के क्लास नाम को प्रिंट करें, इसे एनएसटीएग्ड पॉइंटरस्ट्रिंग के रूप में मुद्रित किया गया है, मुझे संदेह है कि इसे इस्तेमाल करने के लिए इसे स्ट्रिंग में कैसे परिवर्तित किया जाए। किसी के पास अच्छे विचार हैं?NSTaggedPointerString को NSString में परिवर्तित करें

+0

{ errNum = 0; retData = { पता = "\ U6e56 \ U5317 \ U7701 \ U7701 \ U76f4 \ U8f96 \ U53bf \ U7ea7 \ U884c \ U653f \ U533a \ U5212 \ U4ed9 \ U6843 \ U5e02"; जन्मदिन = "1989-07-10"; लिंग = एम; }; retMsg = सफलता; } यह जेएसओएन है जो –

उत्तर

24

NSTaggedPointerString पहले से ही एक एनएसएसटींग है, यह सिर्फ एक उप-वर्ग है। आप रूपांतरण के बिना, कहीं भी एनएसएसटींग का उपयोग कर सकते हैं इसका उपयोग कर सकते हैं।

+0

देता है धन्यवाद, मुझे बस यह पता चलता है क्योंकि मैंने गलत तर्कों का उपयोग तेजी से किया था, इसे ओबीजे-सी के रूप में% @ का उपयोग करना चाहिए, लेकिन मैंने इसके बजाय% s का उपयोग किया। मैंने त्रुटि तय की। –

+0

मेरी कैस में, चेतावनी देने से कनवर्ट नहीं होने पर \ n "असंगत सूचक प्रकार ~~" – Kernelzero

+1

प्रारंभ करना यह एक अलग मुद्दा है। NSTaggedPointerString ऑब्जेक्ट के गतिशील प्रकार के बारे में है। आपकी समस्या आपके स्रोत कोड में लिखे गए प्रकार के बारे में है। –

0

मेरे मामले में बेटे {"गिनती": "123"} मुझे त्रुटि मिली। हल:

// Data was created, we leave it to you to display all of those tall tales! 
// NSLog(@«data: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); 

NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
if ([json isKindOfClass:[NSDictionary class]]){ //Added instrospection as suggested in comment. 
        NSArray *dicArray = json[@"count"]; 
        NSLog(@"=:%@", dicArray); 

} 
9

मैं स्थानों पर जहां यह एक स्ट्रिंग, के रूप में इस्तेमाल नहीं किया जा सकता सामना करना पड़ा जैसे एक NSDictionary बनाते समय। उन मामलों में stringWithString: का उपयोग करें:

NSString* <# myNSString #> = [NSString stringWithString:<# myNSTaggegedString #>]; 
+0

मुझे लगता है कि .property अच्छी तरह से काम नहीं करता है, इसलिए मुझे केवल NSDictionary * aDict = @ {[myvar valueForKey: @ "item"] कहना आसान लगता है। बचाव के लिए केवीओ –

2

मैं इस एक ही मुद्दा कई बार किया था। ऐसा लगता है कि NSDictionary के लिए प्रकार अनुमान एक सटीक विज्ञान नहीं है। मैं जो करता हूं वह विशेष रूप से पूछता है कि क्या वस्तु किसी विशेष विधि का जवाब देती है। उदाहरण के लिए अगर मैं कुछ JSON को पार्स के माध्यम से पाशन रहा हूँ और मैं प्रकार NSString के एक मूल्य तक पहुंचने का प्रयास कर रहा हूँ:

NSString * string; 
if ([[dict objectForKey:@"value"] respondsToSelector:@selector(stringValue)]) { 
    string = [[dict objectForKey:@"value"] stringValue]; 
} 
else { 
    string = [NSString stringWithString:[dict objectForKey:@"value"]]; 
} 
documentFile.documentRevision = string; 
संबंधित मुद्दे