Webサービスを介してOracleデータベースからObjectiveCにBLOBデータを送信しようとしています。BLOBデータは、Oracleデータベースに格納されているワードドキュメントです。
これまでに行ったことは次のとおりです。
- javajdbcを介してblobオブジェクトを取得します
- BLOBオブジェクトをJavaバイト配列に変換します
- このバイト配列をプレーンJavaオブジェクト(シリアル化)に設定し、Webサービスに送信します
- WebサービスはプレーンJavaオブジェクトをapplication/jsonとしてMedia-typeを使用してobjective-cに送信します
- jsonオブジェクトがObjective-cで取得され、バイト配列がNSDataに割り当てられます
- 次にNSDataがファイルに書き込まれ、ファイルが開かれます
問題:objective-cでファイルを開くことができず、Macでファイルを物理的に開くと、ジャンク文字が含まれています。ワードドキュメントを表すJavaバイト配列をObjective-Cで認識されるデータ型に変換し、最後にObjective-Cアプリでワードドキュメントを開くことができるかどうかを教えてください。
以下は、Objective-cの終わりを熟読するためのコードです。
注:コード内の「sourceDoc」はバイト配列のキーです。
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if ([data length] >0 && error == nil){
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSData *returnData = nil;
for(NSDictionary *billDict in jsonArray){
returnData = [NSData dataWithBytes:(__bridge const void *)([billDict objectForKey:@"sourceDoc"]) length:[[billDict objectForKey:@"sourceDoc"] length]];
break;
}
}