1
以下のコードでは、Documents DirectoryのURLが空であるかどうかを確認しようとしています。空の場合は、今すぐ表示されます。ここでDocuments DirectoryのURLが空であるかどうかを確認する
は私のコードです:
- (IBAction)saveVideo:(id)sender {
NSURL *vedioURL;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:nil];
NSLog(@"files array %@", filePathsArray);
NSString *fullpath;
for (NSString *apath in filePathsArray)
{
fullpath = [documentsDirectory stringByAppendingPathComponent:apath];
vedioURL =[NSURL fileURLWithPath:fullpath];
}
NSLog(@"vurl %@",vedioURL);
NSURL *movieUrl = [NSURL fileURLWithPath:fullpath];
NSString *moviePath = [movieUrl path];
if (videoUrl.absoluteString.length == 0) {
NSLog(@"No way");
} else {
self.imageViewPost.image = [self generateThumbImage:moviePath];
AVPlayerItem * playeritem = [AVPlayerItem playerItemWithURL:vedioURL];
[_player replaceCurrentItemWithPlayerItem:playeritem];
[_player play];
[self clearTmpDirectory];
}
}
アプリがクラッシュし、それは私のURLにnull値を示しています
vurl (null)
2017-11-29 20:54:24.288473+0400 EasyVideo[43587:2429960] ***
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
私はこの問題を解決することを願っています。 ありがとう
は、これは意味がありません。ドキュメントフォルダ内のすべてのファイルとフォルダを完全に再帰的にリストします。その後、そのリスト全体を反復し、最後のエントリ(もしあれば)の結果のみを保持します。最後のエントリが映画のURLであると仮定します。あなたはなぜこれをやっているのですか?ドキュメントフォルダには、あらゆる種類のファイルやその他のフォルダを含めることができます。ここで本当に何をしようとしていますか? – rmaddy
"if(videoUrl.absoluteString.length == 0)"のインスタンスvideoUrlとvedioURLは同じインスタンスですか? –