سؤال

لدي صفيفان في هدف جيم، أحتاج إلى العثور على فهرس شيء ما هو حتى أتمكن من إدراجه في نفس المكان. على سبيل المثال، دعنا نقول أن لدي "صفيف الاسم" و "صفيف العمر". كيف يمكنني معرفة الفهرس "Charlie" في "صفيف الاسم" لذلك أعرف أين أدرج عمره في صفيف "العمر"؟

شكرا

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

المحلول

-[NSArray indexOfObject:] يبدو أن الاختيار المنطقي.

نصائح أخرى

في الكاكاو، المصفوفات الموازية هي طريق إلى الموت والتمرين. لا يمكنك استخدامها بفعالية مع الارتباطات، لذلك عليك أن تكتب الكثير من رمز الغراء بدلا من ذلك، كما لو كانت الروابط موجودة. علاوة على ذلك، فإنك تقتل أي دعم من أي جسر AppleScript / Scripting في المستقبل قد تنوي أن تكون قبل أن تبدأ في تطبيقه.

الطريقة الصحيحة هي إنشاء فئة نموذجية مع name و age خصائص، والحصول على مجموعة واحدة من مثيلات تلك الفئة. ثم، للعثور على عنصر بالاسم أو العمر، واستخدام NSPredicate لتصفية الصفيف، و indexOfObjectIdenticalTo: للعثور على مؤشر كل عنصر من الصفيف المرشح في الصفيف الرئيسي.

الفرق بين indexOfObject: و indexOfObjectIdenticalTo: هو أن السابق سيرسل isEqual: الرسائل لتحديد ما إذا كان كل كائن هو الشخص الذي يبحث عنه، في حين أن الأخير سوف يبحث فقط عن الكائن المحدد الذي مرته فيه. وبالتالي، يمكنك استخدام indexOfObject: مع وجود كائن غير موجود في الصفيف ولكنه يساوي، من أجل العثور على كائن متساوي في الصفيف.

قد ترغب فقط في استخدام nsdictionary، أيضا، إذا كنت تفعل عمليات بحث بناء على سلاسل.

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