سؤال

هذا يبدو وكأنه سؤال غبي ولكن كيف يمكنني العثور على سلسلة في NSArray?

حاولت استخدام

[array indexOfObjectIdenticalTo:myString]

ولكن هذا يتطلب اللدغة أن يكون نفس العنوان.

هل من أحد لديه أي نصائح حول كيفية القيام بذلك ؟

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

المحلول

وأنت تريد <لأ href = "http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/ indexOfObject: "يختلط =" noreferrer "> طريقة indexOfObject: ، والتي تبدو للكائن عن طريق إرسال كل كائن في مجموعة رسالة isEqual:

نصائح أخرى

بطرس الجواب الصحيح.

واحدة إضافية ملاحظة ؛ إذا كان لديك الكثير من السلاسل في مجموعة ، -indexOfObject: هو ذاهب الى القيام به البحث الخطي.هذا قد يثبت أن يكون أداء عنق الزجاجة التي يجب أن تنظر في استخدام مختلف الحاويات ؛ وهو NSSet أو NSDictionary ، وربما (اعتمادا على ما سلاسل يعني).

مسكتك آخر هو إذا السلاسل كلها مماثلة نسبيا و/أو طويلة نسبيا.

بالطبع لا تهتم تحسين أي شيء حتى كنت قد استخدمت أدوات التحليل لإثبات أن لديك مشكلة الأداء.

ويمكنك استخدام NSOrderSet كما الحاوية، وعرض في أكثر من NSOrderedSet الدرجة المرجعي هو التالي:

<اقتباس فقرة>   

وNSOrderedSet وفئة فرعية لها، NSMutableOrderedSet، أن يعلن واجهات البرامج إلى مجموعة مرتبة من الكائنات.

     

وNSOrderedSet تعلن واجهة البرامج الثابتة لمجموعات من الكائنات متميزة. لك> إنشاء إدخالات مجموعة ثابتة عند إنشائه، وبعد ذلك إدخالات لا يمكن> تعديل. NSMutableOrderedSet، من ناحية أخرى، أعلن واجهة البرامجية ل> مجموعات حيوية من الكائنات متميزة. A-مجموعة قابلة للتغيير ديناميكية أو يسمح للإضافة وحذف> الإدخالات في أي وقت، تلقائيا تخصيص الذاكرة حسب الحاجة.

     

ويمكنك استخدام مجموعات أمر كبديل لصفائف عند ترتيب العناصر مهم> والأداء في اختبار ما إذا كان الوارد كائن في المجموعة هو يجب أخذها في الاعتبار> اختبار لعضوية مجموعة أبطأ من اختبار للحصول على العضوية مجموعة.

HTTP: // المطور. apple.com/library/mac/#documentation/Foundation/Reference/NSOrderedSet_Class/Reference/Reference.html

containsObject:

إرجاع قيمة منطقية تشير إلى ما إذا كان كائن موجود في المصفوفة.

  • (منطقي)containsObject:(id)كائن المعلمات كائن كائن.

قيمة الإرجاع نعم إذا كان كائن موجود في مجموعة ، وإلا لا.

المناقشة

هذا الأسلوب يحدد ما إذا كان كائن موجود في المصفوفة عن طريق إرسال رسالة isEqual:رسالة إلى كل من مجموعة الكائنات (و تمرير كائن كمعلمة إلى كل isEqual:رسالة).

أعلن في

NSArray.ح

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