मैं ओबीजेसी में सी structs का उपयोग कर रहा हूं और मैंने एक ऐसा फ़ंक्शन बनाया है जो संरचना को कोको एपीआई से इकट्ठा करता है। चीजें यह है कि यह संरचना NSRect o NSPoint की तरह नहीं है, यह संरचना objc ऑब्जेक्ट्स पैक करती है इसलिए मैं यहां एक संभावित मेमोरी लीक देख रहा हूं। क्या मुझे संरचना को 'रिलीज' करने के लिए एक समारोह प्रदान करने की ज़रूरत है?सी स्ट्रक्चर का उपयोग जिसमें ओबीजेसी ऑब्जेक्ट्स शामिल हैं?
मैं एक ISKNewsCategory कक्षा नहीं बना रहा क्योंकि कोई व्यवहार नहीं होगा लेकिन क्या आपको लगता है कि यह एक अच्छा दृष्टिकोण है या मुझे कक्षा को परिभाषित करना चाहिए, यहां तक कि कोई व्यवहार नहीं होगा?
typedef struct ISK_NewsCategory {
NSString *name;
NSString *code
} ISKNewsCategory;
NS_INLINE ISKNewsCategory ISKMakeNewsCategory(NSString *name, NSString *code) {
ISKNewsCategory category;
category.name = [name retain];
category.code = [code retain];
return category;
}
अपने "केवल समय" का विस्तार करने के लिए: पुनरावृत्त वर्गों की तुलना में पुनरावृत्त structs 2-4x तेज है। जैसे-जैसे परियोजनाएं बड़ी हो जाती हैं, यह एक वास्तविक समस्या बन रही है (वर्तमान परियोजना कई बार सैकड़ों हजारों वस्तुओं को फिर से शुरू कर रही है, वास्तविक समय में चलनी है)। – Adam