私が書いているアプリでは、カメラロールから写真をアップロードでき、UIImageViewに表示されます。私は、 "保存"ボタンを押すと画像を保存することができます。タップすると「編集」ボタンもあり、写真をタップすると削除され、削除されます。これは私が問題を抱えているところです。再起動時にアプリケーションが正しく動作しない
3つのイメージを追加してテストを実行すると、保存ボタンを押してから削除しても完全に削除されます。私はアプリを完全に閉じて再起動することができ、画像はもはや存在しません。しかし、3つの画像を追加する場合は、保存ボタンを押してアプリを閉じて再起動し、写真を削除しようとすると、全く機能しません。画像は画面から消えますが、再起動時に再度読み込まれます。非常に奇妙な。私はObjective-Cを全く新しくしています。私はこれまでこれを作ったことにも驚いています。だから、配列から削除する方法の問題を抱えています。
ymコードにNSLog(@"User Clicked Yes. Deleting index %d of %d", alertView.tag, [array count]);
があります。アプリを閉じる前に削除すると、配列数にオブジェクトが含まれていることが表示されます。 Xcodeからもう一度実行して、すでに保存されている画像を削除しようとすると、配列数= 0であることを示します。オブジェクトは再配置時に配列にありません。したがって、問題は、配列内のオブジェクトが正しく保存されていないことです。なぜ私は考えていない、私はそれらを正しく保存していたと思った。私は、これは配列に配置したオブジェクトを保存だろうと思ったが、どうやらない
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
if (imageView.image == nil) {
imageView.image = img;
[self.array addObject:imageView];
[picker dismissModalViewControllerAnimated:YES];
[self.popover dismissPopoverAnimated:YES];
return;
}
if (imageView2.image == nil) {
imageView2.image = img;
NSLog(@"The image is a %@", imageView);
[self.array addObject:imageView2];
[picker dismissModalViewControllerAnimated:YES];
[self.popover dismissPopoverAnimated:YES];
return;
}
...
...
-(IBAction)saveButtonPressed:(id)sender {
NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES) objectAtIndex:0];
NSLog(@"Image view array before saving = %@", self.array);
for (UIImageView *imageViewToSave in self.array) {
NSInteger tag = imageViewToSave.tag;
UIImage *image = imageViewToSave.image;
NSString *imageName = [NSString stringWithFormat:@"Image%i.png",tag];
NSString *imagePath = [docsDir stringByAppendingPathComponent:imageName];
NSLog(@"Saving %@ to %@", image, imagePath);
[UIImagePNGRepresentation(image) writeToFile:imagePath atomically:NO];
}
NSLog(@"Save Button Pressed");
}
:これは私が配列にそれらを追加する方法です。私はこれをやることについて他にどのように行くべきか分かりません。
参考のために、私は.hと.mファイルをwikiに投げました。ここに私の.hファイル全体があります: github.com/Joey502/Test-Thing/wiki/.h-Class-Fileそしてここに私の.mファイル全体があります:github.com/Joey502/Test-Thing/wiki/.m -class-ファイル
画像配列を初期化していて、その配列にオブジェクトが含まれていることを再起動した後にデバッグしていますか? – rishi
@RIP私は、配列にrelaunchのオブジェクトが含まれていることを確認していません。コード全体でNSLogsに追加し、オブジェクトを閉じる前に配列にオブジェクトが含まれていることを確認しました。しかし、私は完全に私はこの種の困難なXcodeのデバッグウィンドウをもう使用することはできませんアプリケーションを閉じた後。私が上に投稿した.mファイルでは、imagePickerControllerメソッドの配列にオブジェクトを追加しているようです。それはこの問題を引き起こす可能性がありますか? – John
はgithub上の.mファイルを開くことができません。また、Xcode自体からオフアプリケーションを一度切り替えてみると、これらの問題点が正確に分かるようになります。 – rishi