サムネイル画像を含むリストビューを使用しています。また、すべての情報を取得するために Web サービスを使用しています。
cellForRowAtIndexPath メソッドで、サービスを呼び出してレコードを取得し、画像が添付されているかどうかを確認します。これはただのブールです。次に、別のメソッドを使用してサービスを再度呼び出し、サムネイルを取得します。すべてのロジックが正しい順序で配置されているように見えますが、画像は間違ったセルに表示され、複製されています。
コードをステップ実行してデバッグすると、各セルのサービス呼び出しが起動され、応答アクションにジャンプするのではなく、次の行/セルに移動するように見えます。すべての行が入力されると、応答に進みます。これはデバッガにとって正常ですか? サービスへの呼び出しが非同期である可能性がありますが、それが理由でしょうか? 石鹸の「ライブラリ」が含まれていますが、どこにも名前が付けられていないようで、非同期要求を実行していないようです。これは、このアプリケーションにとってはばかげています。このプロジェクトはサードパーティの開発者から継承しました。
また、私は .net 開発者であり、Visual Studio デバッガーに慣れているため、問題が発生している可能性があります。
私はiosとobj-cにかなり慣れていないので、私の用語が正しくない場合は申し訳ありません。
コード: 画像を取得するためのサービス呼び出し:
[service GetPictureThumbnail:self action:@selector(GetThumbResponse:) clientid: [AppDelegate clientID] commid:[UserSettings getInstance].selectedID mod:@"CCR" pkey:_ccr.l maxWidth:94 maxHeight:98];
GetThumbResponse:
// Handle errors
if([value isKindOfClass:[NSError class]]) {
NSLog(@"%@", value);
}
// Handle faults
if([value isKindOfClass:[SoapFault class]]) {
NSLog(@"%@", value);
}
// Do something with the NSString* result
Picture_Object* result = (Picture_Object*)value;
NSLog(@"%@", result);
[_cell.imgThumb setImage:[UIImage imageWithData:result.e]];
セル内の他のすべてのデータは問題ありませんが、サービスへの最初の呼び出しに含まれないのは画像だけです。
ありがとう。