سؤال

عندما أجعل NSArray باستخدام +.[NSArray arrayWithObjects:], ، هل نسخ هذه الكائنات؟ إذا قمت بإصدار الكائنات بعد إضافةها إلى الصفيف، هل سأواجه مشاكل؟

هل كانت مفيدة؟

المحلول

لا، لا ينسخها. انها تحتفظ بهم. نعم، يمكنك إطلاق الكائنات بأمان بعد إضافةها إلى الصفيف.

المستندات, ، كما هو الحال دائما، تهجئة هذا بوضوح للغاية:

تحافظ الصفائف على مراجع قوية إلى محتوياتها - في بيئة الذاكرة المدارة، يتلقى كل كائن رسالة احتفاظا قبل إضافة معرفها إلى الصفيف ورسالة إصدار عند إزالته من الصفيف أو عند إلغاء تخصيص الصفيف. إذا كنت تريد مجموعة مع دلالات ملكية كائن مختلفة، ففكر في استخدام مرجع CFarray أو nspointerarray أو nshashtable بدلا من ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top