के साथ एक शून्य * सूचक में उद्देश्य-सी ऑब्जेक्ट असाइन करना मुझे शून्य * सूचक में एक सी संरचना में एक उद्देश्य सी ऑब्जेक्ट रखने की आवश्यकता है। यह संरचना बाहरी पुस्तकालय में परिभाषित है और मैं परिभाषा को बदल नहीं सकता।एआरसी
मान लें कि यह के रूप में परिभाषित किया गया है दो:
struct c_context {
void* user_data;
};
और क्या मैं अपने कोड में क्या करने की जरूरत यह है:
struct c_context *context;
...
context->user_data = [[MYObjCClass alloc] init];
हालांकि, मुझे यकीन है कि MYObjCClass
वस्तु हो जाएगा बनाने की जरूरत है बनाए रखा।
तो मेरे सवाल है:
- कैसे
void*
को कास्ट करने के लिए (या पुल) यह Obj सी वस्तु बनाए रखने के लिए संकलक बता रहा? - जब मुझे डेटा साफ़ करने की आवश्यकता होती है तो ऑब्जेक्ट को बाद में कैसे रिलीज़ किया जाए?
में मैन्युअल रूप से मेमोरी प्रबंधन के लिए बेहतर हो सकता है CFBridging (__bridge_retained void *) और CFBridgingRelease के रूप में समान है (__bridge_transfer MYObjCClass *)? – Dmitry
हां, लेकिन सीएफब्रिजिंग * मैक्रोज़ यह और अधिक स्पष्ट करते हैं कि क्या हो रहा है। –
ग्रेट। बहुत बहुत धन्यवाद, रोब। अब यह बहुत स्पष्ट है – Dmitry