كيفية عرض محتويات NSDictionary متغير في كسكودي المصحح?

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

سؤال

هل هناك طريقة لعرض مفتاح/قيمة أزواج من 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

الآن يمكنك فحص هذه أنواع الكائنات دون الحاجة إلى طباعة الكائن بأكمله في وحدة التحكم.استمتع!

المصدر: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_6.html

انقر على ديكت ، ثم انقر على الرمز "i" ، فإنه ينبغي القيام بهذه المهمة :-) Xcode5, view the value of a dict

يمكنك أيضا استخدام NSLog.

كما يمكنك الذهاب في التصحيح المنطقة أو كسكودي, ثم معرفة All Variables, Registers, Globals and Statics ثم حدد المتغير الخاص بك.انقر على الحق في ذلك.ثم حدد Print description of "...."

نأمل أن يساعد!

إذا كنت ترغب في طباعة هذه في توقف العمل في الحديث كسكودي (نعم ، أنا بعد 10 سنوات من آخر الأصلي!) استخدام التالية توقف التعبير في "رسالة سجل" العمل:

@myDictionary.وصف@

وفيما يلي لقطة من توقف العمل فيها متغير الحدث هو NSString و المتغير contextData هو NSDictionary أنني تسجيل محتويات::

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