0

iPhone/iPad デバイスで利用可能な/空きディスク容量の合計を検出するにはどうすればよいですか?

4

1 に答える 1

2

その「完了」ボタンをクリックすると、ピッカーのキャンセルが呼び出されると思います。その場合、デリゲートメソッドを実装しようとしましたか:

 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
      [self dismissViewControllerAnimated:YES completion:^(void) {
           NSLog(@"Cancelled pick");
      };
 }

また、電話をかけているようですrelease- ARC を使用していない理由はありますか?

推測する必要がある場合、おそらくアラートの却下は実際には次のようなものを呼び出していると思います

 [imagePicker.delegate imagePickerControllerDidCancel:imagePicker];

しかし、すでにリリースされているため、この「ロックアップ」の問題が発生しています。デバッガーをステップスルーして、それらのオブジェクトがまだ存在することを確認してください。

編集:

元の問題は解決しませんが、画像ピッカーを起動する前に、おそらく次のような方法で使用可能なスペースを確認できます。

- (uint64_t)freeDiskspace
 {
     uint64_t totalSpace = 0;
     uint64_t totalFreeSpace = 0;

     __autoreleasing NSError *error = nil;  
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
     NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];  

     if (dictionary) {  
         NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];  
         NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];
         totalSpace = [fileSystemSizeInBytes unsignedLongLongValue];
         totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue];
         NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace/1024ll)/1024ll), ((totalFreeSpace/1024ll)/1024ll));
     } else {  
         NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %d", [error domain], [error code]);  
     }    

     return totalFreeSpace;
 }
于 2013-01-14T19:17:32.523 に答える