باستخدام KVC لإنشاء SQL؟
-
06-07-2019 - |
سؤال
أتساءل عما إذا كان من الممكن استخدام KVC لإنشاء SQL. أنا أفعل خفيفة. أريد أن أفعل شيئًا كهذا (الرمز الكاذب):
for key in object.getKeys
sql = sql + formatField(key,objet.value[key]);
واحصل على:
INSERT INTO Table (Field1) VALUES (1);
هل هذا ممكن في Objective-C؟
المحلول 3
وجدت class_copyPropertyList
بحيث تملأ الفاتورة.
أحصل على ذلك من كائنات SQLite المستمرة. أنا فقط بحاجة إلى معرفة كيف تنفيذ العلاقات ؛)
نصائح أخرى
لا يمكن لترميز القيمة الرئيسية القيام بذلك حقًا ، ولكن يمكنك استخدام NSDictionary لهذه المهمة إذا كنت لا ترغب في إنشاء طبقة وصول للبيانات محددة لكائناتك. إليك مثال سريع للحقول الرقمية:
for ( NSString *key in [dictionary allKeys] )
{
fields = [fields stringByAppendingFormat:@", %@", key];
values = [values stringByAppendingFormat:@", %ld", (long)[[dictionary objectForKey:key] integerValue]];
}
NSString *sql = [NSString stringWithFormat:@"INSERT INTO Table (%@) VALUES (%@);", fields, values];
ما تريده يبدو مشابهًا جدًا لكائنات SQLite المستمرة. إنها مجموعة من فئات Objective-C التي تفعل ما تتحدث عنه بشكل أساسي. يمكن العثور على تفاصيل حول الفصول والمصدر (والتي قد تكون مثيرة للاهتمام بشكل خاص إذا كنت ترغب في كتابة نسختك الخاصة) هنا: http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistraft-objects.html