2016-06-21 5 views
6

मैं टीम ट्री हाउस से ऑनलाइन ट्यूटोरियल का अनुसरण कर रहा हूं और मेरे डेटा मॉडल के लिए एनएसएमएनेज्ड ऑब्जेक्ट सबक्लास बनाने का एक कदम है।NS_ASSUME_NONNULL_BEGIN मैक्रो

जब मैंने किया था कि कोड स्वचालित रूप से एक वर्ग पैदा किया और शुरुआत और और कम से अंत मैक्रो का सेट:

NS_ASSUME_NONNULL_BEGIN

NS_ASSUME_NONNULL_END

मैं खोज रहा था, लेकिन मैं ऑनलाइन ये लोग यहां क्या कर रहे हैं इसके बारे में कोई दस्तावेज नहीं मिला। जिस तरह से उन्हें हेडर NSObjCRuntime.h

कोई विचार है कि वे किस उद्देश्य से सेवा करते हैं?

+1

की तरह मैंने कहा प्रलेखन https://developer.apple.com/reference/foundation/ns_assume_nonnull_begin सभी मैं देख रहा हूँ की नहीं एक बहुत मुद्दों और कैसे का एक बहुत है उन्हें समस्या निवारण करने के लिए लेकिन क्या नहीं है। –

+0

देखें [शून्यता और वैकल्पिक] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-ID45) कोको और उद्देश्य-सी_ गाइड के साथ _Using स्विफ्ट में। – Rob

+2

"बहुत सारे दस्तावेज नहीं हैं" खेदजनक है, लेकिन यह * दूसरा * हिट है। पहले प्रयास करें: [शून्यता और उद्देश्य-सी - स्विफ्ट ब्लॉग - ऐप्पल डेवलपर] (https://developer.apple.com/swift/blog/?id=25) – rickster

उत्तर

16

यह आपके हेडर में nonnull टाइप करने के लिए एक सुविधा मैक्रो है। स्विफ्ट ब्लॉग का ब्यौरा कैसे नई सुरक्षा सुविधाओं ऑब्जेक्टिव-सी में वापस शामिल किया गया है से:

नई व्याख्याएं की गोद लेने को कम करने के लिए, आप के रूप में कुछ क्षेत्रों को चिह्नित कर सकते अपने ऑब्जेक्टिव-सी हेडर फाइल के शून्यता के लिए लेखापरीक्षित। इन क्षेत्रों में, किसी भी साधारण सूचक प्रकार को गैर-शून्य माना जाएगा।

Nullability और देखें ऑब्जेक्टिव-सी - https://developer.apple.com/swift/blog/?id=25