2012-12-20 22 views
7

मुझे अपने एक्सकोड प्रोजेक्ट में SIGPIPE त्रुटि का सामना करना पड़ रहा है। यह त्रुटि एक सप्ताह पहले से दिखाना शुरू हो गया है। अगर मैंने इस विधि पर टिप्पणी की है तो कॉल करें: [self configureBump]; सबकुछ ठीक काम करता है। मैंने अपनी परियोजना में BUMP API एकीकृत किया था। यह एपीआई बिना किसी समस्या के एक हफ्ते पहले काम कर रही है। मुझे इस त्रुटि के कारण के बारे में निश्चित नहीं है। क्या कोई इस त्रुटि को हल करने में मेरी मदद कर सकता है? मेरे कुछ दोस्तों को भी इस त्रुटि की सूचना दी गई है।आईओएस प्रोजेक्ट में एसआईजीपीआईपीई अपवाद BUMP API एकीकृत

Xcode संस्करण: 4.5 आईओएस संस्करण: आईओएस 6.0/iOS 5.0

कृपया स्टैक ट्रेस नीचे देखें:

* thread #1: tid = 0x1c03, 0x95a887d2 libsystem_kernel.dylib`mach_msg_trap + 10, stop reason = signal SIGPIPE 
    frame #0: 0x95a887d2 libsystem_kernel.dylib`mach_msg_trap + 10 
    frame #1: 0x95a87cb0 libsystem_kernel.dylib`mach_msg + 68 
    frame #2: 0x029ef13a CoreFoundation`__CFRunLoopServiceMachPort + 186 
    frame #3: 0x02952580 CoreFoundation`__CFRunLoopRun + 1312 
    frame #4: 0x02951db4 CoreFoundation`CFRunLoopRunSpecific + 212 
    frame #5: 0x02951ccb CoreFoundation`CFRunLoopRunInMode + 123 
    frame #6: 0x03093879 GraphicsServices`GSEventRunModal + 207 
    frame #7: 0x0309393e GraphicsServices`GSEventRun + 114 
    frame #8: 0x017a0a9b UIKit`UIApplicationMain + 1175 
    frame #9: 0x00002dd7 iCard`main + 199 at main.m:17 
    frame #10: 0x00002185 iCard`start + 53 
+1

एक और छोटी गाड़ी एपीआई ... अब यह देखें: ड्रॉपबॉक्स डेवलपर्स के पास विविध कार्यों के बारे में कोई संकेत नहीं है और आपके ढेर को दूषित कर दिया है, क्या यह कोई बेहतर है? –

+0

'[स्वयं कॉन्फ़िगरबंप] 'ऐसा लगता है कि यह सीधे उनके नमूना ऐप से आया था। एक्सकोड डीबगर में ब्रेकपॉइंट्स सेट करके, या कॉन्फ़िगरेशन में 'एनएसएलओजी' कॉल सेट करके थोड़ा गहरा खोदना संभव होना चाहिए। कॉल विधि स्वयं सटीक रूप से निर्धारित करने के लिए निर्धारित करती है कि कॉल किस प्रकार से सिगिपिप कर रही है। –

उत्तर

7

यह संभव है कि SIGPIPE सॉकेट टाइमआउट या नहीं/खो कनेक्शन पर फेंक दिया जा रहा है उस lib के अंदर। उनके पक्ष या कुछ पर कुछ सर्वर विफलता हो सकती है।

आप के साथ SIGPIPE की अनदेखी करके आसपास पहुंच सकते हैं: जानकारी के लिए

signal(SIGPIPE, SIG_IGN); 

या

signal(SIGPIPE, SO_NOSIGPIPE); 

चेक this link

दूसरी ओर, आप

signal(SIGPIPE, yourHandlerFunc);

के साथ अपने हैंडलर समारोह की स्थापना करके आगे डिबग और सॉकेट/ivars/आदि उस में की जाँच राज्य कर सकते हैं।