كيف تكرر على قاموس دون معرفة المفاتيح ، أثناء الحصول على المفتاح والكائن؟

StackOverflow https://stackoverflow.com/questions/3064933

  •  28-09-2019
  •  | 
  •  

سؤال

لدي nsdictionary وأريد التكرار على الأشياء. لكن في الوقت نفسه ، أحتاج إلى معرفة مفتاح القاموس.

أتذكر أنه كان هناك شكل خاص ورائع من التعداد السريع ، لكن نسيت بناء الجملة الدقيق.

أي واحد؟

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

المحلول

أعتقد أن ما تريده هو شيء مثل هذا:

for (id key in dictionary) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}

مأخوذ من هنا.

نصائح أخرى

هذا أيضًا خيار جيد إذا كنت تحب الكتل.

[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

}]
for (id key in mydictionary) {
   id mything = [mydictionary objectForKey:key];
}

keyenumerator إرجاع كائن يتيح لك التكرار من خلال كل من المفاتيح في القاموس. من هنا

على حد علمي ، في الوقت الذي طرحت فيه السؤال ، لم يكن هناك سوى طريقة واحدة لاجتياز المفاتيح والقيم في نفس الوقت: CFDictionaryApplyFunction.

يتضمن استخدام وظيفة الأساس الأساسية هذه مؤشر وظيفة C قبيح لجسم الحلقة والكثير من الصب غير المؤلم ، ولكنه مجد.

Zekel لديه الطريقة الحديثة للتكرار قاموس. التصويت عليه!

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