StringWithFormat: مع نوع بيانات غير معروف
-
27-09-2019 - |
سؤال
أقوم بإطار عمل ولدي هذا الرمز (conditions
هو nsdictionary):
for (NSString *key in conditions) {
id value = [[conditions valueForKey:key] retain];
// Check if number or string
if ([value class] == [NSString class]) {
conditionsString = [NSString stringWithFormat:@"%@='%@' ", key, value];
} else {
conditionsString = [NSString stringWithFormat:@"%@=%@ ", key, value];
}
}
إذا value
هو NSString ، يجب إضافة عروض الأسعار ، وإلا يجب عدم إضافة الرموز. ومع ذلك ، إن لم يكن NSString ، لا أعرف نوع البيانات من value
, ، كما يمكن أن يكون nsnumber ، nsinteger ، int ، تعويم ، مزدوجة ، إلخ ... لا يمكنني استخدام فقط %@
أو %d
لكنني متأكد من أن شخصًا ما يعرف كيف يفعل هذا؟ شكرًا.
المحلول
القي نظرة على هذه.
تحرير: في حالتك ، من السهل جدًا ، لأن NSDictionary لا يمكن أن تحتوي إلا على nsobjects. لذلك ٪@ سوف تفعل الخدعة.
نصائح أخرى
يمكنك التحقق من الفصل (kindofclass) ثم استخدام التنسيق المناسب.
على سبيل المثال
if ( [myObj isKindOfClass:[NSString class]] )
لا تنتمي إلى StackOverflow