有多大的圖像?有多少是你想送?
我似乎不能鰭d一個簡單的方法,使用AFNetworking
來實現NSInputStream
,但絕對有一件事你應該嘗試,這是避免把大對象放在自動釋放池中。當你創建一個大的NSData實例時,在for循環中,並且這些實例將進入autorelease池,只要循環持續,所有內存都會一直存在。這是一個方式來優化它:
for (int i=0; i<[self.sImages count]; i++) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSData *imageData = UIImageJPEGRepresentation([self.sImages objectAtIndex:i], 0.7);
[formData appendPartWithFileData:imageData name:@"pics[]" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
pool drain];
}
或者,如果你使用LLVM3:
for (int i=0; i<[self.sImages count]; i++) {
@autoreleasepool {
NSData *imageData = UIImageJPEGRepresentation([self.sImages objectAtIndex:i], 0.7);
[formData appendPartWithFileData:imageData name:@"pics[]" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
}
}