سؤال

وأريد أن يكون مجموعة قابلة للتغيير مع الأوليات في الكائنات ج (محددات). ما هي الطريقة الموصى بها للقيام بذلك؟ NSArray وتلك يمكن أن تعقد فقط الكائنات.

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

المحلول

ويجب أن يستخدم NSValue إلى التفاف محدد أو أي نوع بدائي الأخرى التي تحتاج إليها. في الكاكاو SEL هو نوع من المؤشر، بحيث يمكنك استخدام [NSValue valueWithPointer:whatever] لبناء عليه و[value pointerValue] ليخرجه. أو، بشكل عام يمكنك استخدام [NSValue valueWithBytes:&whatever objCType:@encode(SEL)]. هذا يعمل من أجل أي نوع.

نصائح أخرى

إذا كنت تريد تخزين صفيف من الكائنات SEL، وأسهل شيء أن يكون لتحويل SELs إلى NSStrings باستخدام وظيفة NSStringFromSelector()، وتخزينها في NSMutableArray، ومن ثم تحويلها إلى SELs عند سحبها باستخدام NSSelectorFromString() وظيفة.

وآخرون من إدارة مجموعة على غرار C نفسك (والتي هي بالتأكيد ليست الخيار الأفضل، IMO)، والخيار الوحيد هو استخدام NSArray / NSMutableArray، وتخزين أرقام باستخدام NSNumber. انها قليلا أكثر مزعج للحصول على قيمة خارج من مع نوع عددي الفعلي، ولكنه مجانا لكم من إدارة ذاكرة مجموعة من نفسك.

ومنذ أنواع بدائية عموما مجرد أرقام (سواء كانت صحيحة أو الفاصلة العائمة) أو مؤشرات، ما هي المشكلة مع استخدام الفئات المستخدمة للالتفاف تلك التي تصل لأغراضك؟ وNSMutableArray من NSNumbers، على سبيل المثال؟

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