2011-02-04 6 views
31

उपयोग करने के लिए objc_msgSend उपयोग करने के लिए, लेकिन मैं हो रही है क्रम के हेडर आयात करने के लिए मैं चाहता हूँ:कैसे #import करने के लिए <NSObjCRuntime.h> objc_msgSend

error: NSObjCRuntime.h: No such file or directory 

मैं हैडर खोज पथ के लिए कुछ जोड़ना चाहिए?

उत्तर

56

आप <objc/message.h>objc (/usr/lib/libobjc.dylib) पुस्तकालय के लिए और लिंक (आप संबंधित /usr/include/objc में हेडर मिल जाएगा) दर्ज करनी होगी।

+1

यह काम की तरह हल किया जा सकता! क्या आप साझा कर सकते हैं कि आपको यह कहां मिला? मैंने सेब दस्तावेज़, गूगल कोड खोज, और कुछ भी ब्राउज़ नहीं किया है! –

32

#import <Foundation/NSObjCRuntime.h> काम

करता है लेकिन आप शायद

#import <objc/runtime.h> 

like this Apple example does

upd की जरूरत है: के बाद से iOS 7 #import <Foundation/NSObjCRuntime.h>#import <objc/NSObjCRuntime.h> को प्रतिस्थापित लेकिन मैं Xcode का उपयोग करते समय #import <objc/runtime.h> वैसे भी

+1

विधि 'objc_msgSend' '' में घोषित किया गया है, 'objc/runtime.h>' में नहीं। तो आपको लाइब्रेरी फ़ंक्शन को स्पष्ट रूप से घोषित करने के लिए चेतावनी मिलेगी। –

0

उपयोग करने के लिए सलाह देते हैं 6 और बाद में, आपकोके बाद एक त्रुटि मिलेगी। यह इस

#include <objc/message.h> 
void foo(void *object) { 
    typedef void (*send_type)(void *, SEL, int); 
    send_type func = (send_type)objc_msgSend; 
    func(object, sel_getUid("foo:"), 5); 
} 

http://devstreaming.apple.com/videos/wwdc/2014/417xx2zsyyp8zcs/417/417_whats_new_in_llvm.pdf

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