2013-04-30 5 views
7

मैं एक शब्दकोश है कि जब मैं लॉग इन करें यह पता चलता है है ...NSJSONSerialization दुर्घटनाग्रस्त एप्लिकेशन

{ 
    Date = "2013-04-30 17:17:18 +0000"; 
    Description = Kb; 
    EventID = "92193e58-c04a-4233-9a6c-1332bc056b20"; 
    Title = Keyboard; 
} 

मैं इस तरह एक JSON वेब सेवा के लिए NSData में बारी करने की कोशिश कर रहा हूँ ...

- (NSData *)JSONRepresentation 
{ 
    NSDictionary *dictionary = [self dictionaryObject]; 

    NSError *jsonError; 

    NSData *JSONData = [NSJSONSerialization dataWithJSONObject:dictionary 
                 options:0 
                 error:&jsonError]; //This is where the error occurs. 

    return JSONData; 
} 

लेकिन हर बार जब मैं इसे चलाता हूं तो ऐप बस दुर्घटनाग्रस्त हो जाता है।

शब्दकोश ठीक से बनाया गया है, ऐप बस इस लाइन पर क्रैश हो जाता है।

AppCode में मैं क्रैश रिपोर्ट मिलता है ...

EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT, subcode=0xdefe)) 

Xcode में एप्लिकेशन बस बंद हो जाता है और अगर मैं इसे एक त्रुटि के साथ बंद हो जाता है जारी रखने के लिए प्रयास करें ...

EXC_BAD_ACCESS (code=1, address=0x0) 
+0

डीबगर यह कहां उड़ रहा है? –

+3

क्या आप थोड़ा और संदर्भ प्रदान कर सकते हैं, उदा। आसपास की रेखाएं? 'JsonError' कहां घोषित किया गया है? – Jim

+0

लाइन 'एनएसडीएटा * JSONData = [NSJSON ....' पर। यह उस रेखा पर रुक जाता है। दुर्घटना के बाद डीबगर में मैंने शब्दकोश को मुद्रित किया ताकि शब्दकोश निश्चित रूप से सही हो। – Fogmeister

उत्तर

14

आपका कुंजी JSON में कनवर्ट करने के लिए अमान्य वस्तुएं हैं। From the docs:

एक वस्तु है कि JSON करने के लिए परिवर्तित किया जा सकता है निम्नलिखित गुण होना चाहिए:

शीर्ष स्तर वस्तु एक NSArray या NSDictionary है। सभी ऑब्जेक्ट एनएसएसटींग, एनएसएनंबर, एनएसएआरएआरई, एनएस डिक्शनरी या एनएसएनयूएल के उदाहरण हैं। सभी शब्दकोश कुंजी एनएसएसटींग के उदाहरण हैं। संख्याएं NaN या अनंत नहीं हैं।

+1

बहुत बहुत धन्यवाद। एनएसडीएटी वस्तु दुर्घटना का कारण बन रही थी। – Fogmeister

+0

ग्रेट। मेरे पास एक तेज़ enum था कि मैं एक स्ट्रिंग rawValue के रूप में गुजरना भूल गया जो मेरे लिए यह दुर्घटना का कारण बन गया। – Undrea

संबंधित मुद्दे