ユーザーが写真をアップロードしてサーバーに送信できるようにするアプリを構築しています。しかし、私は、複数の写真をアップロードしようとすると、5枚の写真を言うと、2枚の画像をアップロードするだけで、5枚の画像をアップロードすることがあることに気付きました。アップロードのプロセスは一貫していないようですが、私はネットワークと関連があると思います。ここ は、アップロード用のコードです:Xcode - 写真をサーバーの問題にアップロードする
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSMutableDictionary * dict = [[NSMutableDictionary alloc]init];
dict = [returnString JSONValue];
[responseStr addObject:[[dict objectForKey:@"Image"]objectForKey:@"Name"]];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
ImageIndex = ImageIndex+1;
[self imageUplaodAndProductUploadFunction:ImageIndex];
}
は、その後、私は回避するアイデアを思い付いた:
今-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSMutableDictionary * dict = [[NSMutableDictionary alloc]init];
dict = [returnString JSONValue];
if([responseStr containsObject:[[dict objectForKey:@"Image"]objectForKey:@"Name"]])
{
NSLog(@"It present");
itcontains =YES;
}
else
{
itcontains = NO;
NSLog(@"Not contain");
[responseStr addObject:[[dict objectForKey:@"Image"]objectForKey:@"Name"]];
}
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
if(itcontains == NO)
{
ImageIndex = ImageIndex+1;
}
[self imageUplaodAndProductUploadFunction:ImageIndex];
}
、それは正しく5枚の写真をアップロードしますが、その後、奇妙な状況が起こります。 Image1、Image2、Image3、Image4、Image5の5つの画像があるとしましょう。 5枚の写真が正常にアップロードされましたが、画像が重複している可能性があります。 ケース1:画像1、画像2、画像2、画像4、画像4 ケース2: 、画像2、画像3、画像4、画像4
重複は、5つの画像のいずれでもかまいません。
誰でも手助けできますか?ありがとう
これを試してみてください。https://stackoverflow.com/a/28737846/3901620 – KKRocks
を私は仮定している(a)におこれらの要求を同時に実行しています。 (b)これらの同時リクエストのすべてに対してデリゲートとして機能する同じインスタンスを持っている。 (c)さまざまな同時リクエストが相互に重なり合う可能性があるイーバールを参照しています。さらに、非推奨のNSURLConnectionを使用しています。 'NSURLSession'を補完ブロックで使用すると、これらの問題の多くが解決されます。 – Rob
ありがとうございました – Kevin