2012-06-10 21 views
5

Çekirdek veri nesnesine ve aynı öznitelik için farklı değer kullanan bir REST web arabirim var. Yönetilen nesne, "tamsayı" (enum) olan "tip" özelliğine sahiptir, REST arabirimi "type" (dize: "truck", "car", "moped") gibi bir dize değerine sahiptir.Restkit'i kullanarak REST'e eşleme yaparken öznitelik değerlerini nasıl değiştirebilirim?

Nesneyi RKObjectLoaderDelegate yöntemi objectLoader:willMapData: kullanarak aldığınızda değeri dizeden tamsayıya dönüştürüyorum. Umarım bunu böyle yapmalıyım.

Soruma Soru: Nesneyi yerleştirirken/gönderirken, değeri tamsayı (enum) değerinden string değerlerine nasıl veya nerede dönüştürüyorum? Serileştirme işleminde, put/post aksiyonu için değerleri manipüle edebileceğim bir an var mı? Seri düzenleyiciyi veya RKManagedObjectMapping alt sınıfını mı perpahps, yoksa bir noktada özniteliğin değerlerini değiştirebileceğim bir noktaya çağrılmalı mıyım?

cevap

9

Bunu, eşleştirdiğiniz (NSManagedObject) sınıf için bir kategori oluşturarak ve Restkit tarafından kullanılacak olan bu kategoride özel özellikler ekleyerek çözebilirsiniz. Bu nedenle, enum (type) bir dizeye dönüştüren ve "type" yerine "typeString" özniteliğini json olarak eşleyen kategoride bir özellik typeString ekleyin.

[serializationMapping mapKeyPath:@"typeString" toAttribute:@"type"] 

sen hiç objectLoader:willMapData: kullanmak gerekmez Bu şekilde ve dönüşüm güzel (nesnenin gömülü olduğu: göndermek için

[mapping mapKeyPath:@"type" toAttribute:@"typeString"] 

ve bunun gibi: O ulaşmasından şuna benzer kategori).

+0

sadece harika! Güzel bir çözüm için çok arandı - ve işte burada. Teşekkürler. – NDY

İlgili konular