Ios 由于内存错误而终止?
我正在做一个需要管理视频的项目。我需要重命名或删除视频。为此,我们需要将视频保存在NSDATA中,然后对其进行管理。 但由于下面语句中的内存错误,我收到了一条终止的错误消息 已编辑Ios 由于内存错误而终止?,ios,iphone,memory-management,Ios,Iphone,Memory Management,我正在做一个需要管理视频的项目。我需要重命名或删除视频。为此,我们需要将视频保存在NSDATA中,然后对其进行管理。 但由于下面语句中的内存错误,我收到了一条终止的错误消息 已编辑 NSData *data=[NSData dataWithContentsOfFile:self.path]; if (data){ BOOL success = [data writeToFile:videopath atomically:NO]; } self.path包含视频文件的路径。它在小尺寸视频
NSData *data=[NSData dataWithContentsOfFile:self.path];
if (data){
BOOL success = [data writeToFile:videopath atomically:NO];
}
self.path包含视频文件的路径。它在小尺寸视频(4-10分钟)中工作,但在大尺寸视频(大于20-30分钟)中崩溃
请给出建议。您正在应用程序中以
NSData
的形式维护完整视频。不要将视频文件用作NSData
,而是将视频复制到某个位置(例如)。您可以删除或重命名旧视频。使用此代码将视频文件加载到内存,您的代码可以处理小文件,但处理大文件时会失败
if ( [[NSFileManager defaultManager] isReadableFileAtPath:source] ){
[[NSFileManager defaultManager] copyItemAtURL:source toURL:destination error:nil];}
我不知道你的要求是什么。从您的问题中,我了解到您需要重命名视频文件。对于重命名,我们为什么需要将其作为NSdata读取,然后再次写入相同的数据。要重命名,请尝试以下代码
NSFileManager *filemanager = [NSFileManager defaultManager];
if ([filemanager fileExistsAtPath:filePath])
{
NSString *target = [[filePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:newnameofthefile];
[filemanager moveItemAtPath:filePath toPath:target error:nil];
}
我希望这能帮助你……请解释什么是“自我路径”。我认为您需要首先检查是否提取了数据。在“writeToFile”之前。请将整个代码和什么是
self.path
放在这里??带文件名的完整路径的文件名?我现在已经更新了这个问题。请advice@sanchitsingh重命名/删除文件时,为什么需要读取视频文件数据?您不能为此使用NSFileManager
API吗?对于重命名,请使用moveItemAtPath:toPath:error:
;对于删除,请使用removitematpath:error:
@Amar,您的逻辑正在运行。谢谢。