質問は iOS と厳密に結び付いているわけではありませんが、iOS アプリでこれに遭遇したので、Objective-C の観点から話します。
私の iOS アプリはクライアントで、サーバーからデータを取得します。サーバーからのデータはjsonで、クラスにマップされています。サーバーがオブジェクトの必要な部分だけを送信すると、問題が発生します。
完全なオブジェクトが
{
"a" : 1,
"b" : 2,
"c" : 3
}
それがマップされている私のクラスは
@class MyObject
{
int a, b, c;
}
@property (nonatomic) int a, b, c;
-(id) initFromDictionary:(NSDictionary*)dict
@end
@implementation MyObject
-(id) initFromDictionary:(NSDictionary*)dict
{
self = [super init];
if (self)
{
a = [dict[@"a"] intValue];
b = [dict[@"b"] intValue];
c = [dict[@"c"] intValue];
}
return self;
}
@end
サーバーは送信できます
{
"a" : 1,
"c" : 3
}
リクエストgetAandC
と
{
"a" : 1,
"b" : 2
}
別の場合 - getAandB
(これらのリクエストは依存していません。似ているのは、使用するオブジェクトだけです)。b
最初のものと2番目のものについての情報は必要ありませんc
。
問題は次のとおりです。これらのリクエストのコードを書くとき、どのフィールドが返され、空のフィールドを使用しないかは確かにわかっていますが、しばらくすると、どのリクエストが部分的なオブジェクトまたは完全なオブジェクトを返したかを忘れて、空のフィールドを使用しようとすることがあります。そのため、見つけにくい多くのエラーが発生する可能性があります。
オブジェクトが完全にロードされているか部分的にロードされているかを判断し、開発者に警告するためのパターンはありますか?