كيف تكرر على قاموس دون معرفة المفاتيح ، أثناء الحصول على المفتاح والكائن؟
-
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 لديه الطريقة الحديثة للتكرار قاموس. التصويت عليه!
لا تنتمي إلى StackOverflow