كيفية عرض محتويات NSDictionary متغير في كسكودي المصحح?
-
02-07-2019 - |
سؤال
هل هناك طريقة لعرض مفتاح/قيمة أزواج من NSDictionary متغير من خلال كسكودي المصحح?هنا قدر من المعلومات عندما توسعت بشكل كامل في متغير النافذة:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
كنت أتوقع أن تظهر لي كل عنصر من القاموس (مماثلة إلى صفيف متغير).
المحلول
في جدب نافذة يمكنك استخدام po
لتفقد الكائن.
بالنظر إلى:
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
تعيين نقطة توقف بعد الأشياء تضاف يمكنك فحص ما في القاموس
(gdb) po dict
{
bar = foo;
buz = fiz;
}
بالطبع هذه هي NSString
الكائنات التي تطبع بشكل جيد.YMMV مع غيرها من الكائنات المعقدة.
نصائح أخرى
يمكنك انقر بزر الماوس الأيمن فوق أي كائن (ObjC أو مؤسسة كور) متغير ثم حدد "طباعة وصف وحدة التحكم" (أيضا في تشغيل->متغيرات عرض).هذا يطبع نتيجة obejct هو -debugDescription
الطريقة التي بشكل افتراضي المكالمات -description
.لسوء الحظ ، NSDictionary
يتجاوز هذا إلى إنتاج مجموعة من البيانات الداخلية لك عموما لا أهتم لذلك في هذه الحالة المحددة craigb هو الحل الأفضل.
عرض المفاتيح و القيم أيضا استخدام -description
, لذا إذا كنت تريد معلومات مفيدة حول الكائنات في مجموعات وغيرها ، الغلابة -description
هو يجب أن يكون.عموما أنا تنفيذه على طول هذه الخطوط ، لتتناسب مع الشكل الافتراضي NSObject
التنفيذ:
-(NSString *) description { return [NSString stringWithFormat:@"<%@ %p>{foo: %@}", [self class], self, [self foo]]; }
يمكنك استخدام CFShow()
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
CFShow(dict);
في الناتج سترى
{
bar = foo;
buz = fiz;
}
كسكودي 4.6 أضاف الوظائف التالية والتي قد تكون مفيدة لك
The elements of NSArray and NSDictionary objects can now be inspected in the Xcode debugger
الآن يمكنك فحص هذه أنواع الكائنات دون الحاجة إلى طباعة الكائن بأكمله في وحدة التحكم.استمتع!
انقر على ديكت ، ثم انقر على الرمز "i" ، فإنه ينبغي القيام بهذه المهمة :-)
يمكنك أيضا استخدام NSLog.
كما يمكنك الذهاب في التصحيح المنطقة أو كسكودي, ثم معرفة All Variables, Registers, Globals and Statics
ثم حدد المتغير الخاص بك.انقر على الحق في ذلك.ثم حدد Print description of "...."
نأمل أن يساعد!