MTLModel から継承する MyModel があります (GitHub Mantle ポッドを使用)。MyModel.h
#import <Mantle/Mantle.h>
@interface MyModel : MTLModel <MTLJSONSerializing>
@property (nonatomic, copy, readonly) NSString *UUID;
@property (nonatomic, copy) NSString *someProp;
@property (nonatomic, copy) NSString *anotherProp;
@end
MyModel.m
#import "MyModel.h"
@implementation MyModel
+ (NSDictionary *)JSONKeyPathsByPropertyKey
{
return @{
@"UUID": @"id",
@"someProp": @"some_prop",
@"anotherProp": @"another"
};
}
}
@end
次に、AFNetworking を使用して JSON をバックエンドに送信します。その前に、モデル インスタンスを JSON NSDictionary に変換して、リクエスト内でパラメーター/ボディ ペイロードとして使用します。
NSDictionary *JSON = [MTLJSONAdapter JSONDictionaryFromModel:myModel];
しかし、この JSON は、nil である私のモデルのプロパティの奇妙な "" 文字列で構成されています。代わりに、Mantle がこれらのキーと値のペアを省略し、nil や NSNull.null 以外のプロパティのみを含む JSON を吐き出すようにする必要があります。