ELCImagePickerControllerを使用していますので、複数の写真を選択してインポートできます。私はいくつかの写真を選択するとうまくいきますが、約25を超えて選択するとクラッシュします。ここで私は写真を選択して行わヒットした後に実行されるコードだ:選択後にUIImagePickerがクラッシュする
-(void)selectedAssets:(NSArray*)_assets {
NSMutableArray *returnArray = [[NSMutableArray alloc] init];
int count=0;
for(ALAsset *asset in _assets) {
NSMutableDictionary *workingDictionary = [[NSMutableDictionary alloc] init];
[workingDictionary setObject:[asset valueForProperty:ALAssetPropertyType] forKey:@"UIImagePickerControllerMediaType"];
UIImage *image=[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]];
[workingDictionary setObject:image forKey:@"UIImagePickerControllerOriginalImage"];
[workingDictionary setObject:[[asset valueForProperty:ALAssetPropertyURLs] valueForKey:[[[asset valueForProperty:ALAssetPropertyURLs] allKeys] objectAtIndex:0]] forKey:@"UIImagePickerControllerReferenceURL"];
NSLog(@"%i", count);
count++;
[returnArray addObject:workingDictionary];
}
[self popToRootViewControllerAnimated:NO];
[[self parentViewController] dismissModalViewControllerAnimated:YES];
if([delegate respondsToSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:)]) {
[delegate performSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:) withObject:self withObject:[NSArray arrayWithArray:returnArray]];
}
}
私は80枚の写真を選択し、のNSLog文は45まで表示しますが、それは単にメッセージなし、ただ(gdb)
でクラッシュ。
私が選んだ画像は、リアカメラで撮影したiPhone 4の画像です。インポート時に画像のサイズを変更しようとしましたが、それでもアプリがクラッシュします。何が問題になるのだろうか?
RAMを使いすぎている可能性があります。アクティビティモニタツールでコードのこの部分をプロファイリングしましたか? – Eugene
私は今インストゥルメンツでリークテンプレートを使用しており、合計割り当ては決して3.76 MBを超えていません。または、別のテンプレートを使用する必要がありますか? – Snowman
80イメージを選択してRAMにロードすると、その使用量は〜4MBのようになります。 Activity Monitorの計測器を使用してみてください。実際のメモリ使用量の統計情報が表示されます。 – Eugene