gpt4 book ai didi

objective-c - 使用 UIDocument saveToUrl 在 NSURL 上抛出 NSInvalidArgumentException

转载 作者:行者123 更新时间:2023-11-29 13:28:04 27 4
gpt4 key购买 nike

我正在尝试进行快速测试以将文件同步到 iCloud。这是我的简单片段:

url = [[ubiquityContainerURL
URLByAppendingPathComponent: @"Documents"]
URLByAppendingPathComponent:@"test.txt"];

doc = [[CloudDocument alloc] initWithFileURL:url];

[doc saveToURL:[doc fileURL]
forSaveOperation:UIDocumentSaveForCreating
completionHandler:^(BOOL success) {
}];

现在我试着环顾四周,在其他教程中,这似乎是他们这样做的方式。问题是当代码运行时,会抛出这个异常(在 [doc saveToURL] 行):

'NSInvalidArgumentException', reason: '* -[NSURL URLByAppendingPathExtension:]: component, components, or pathExtension cannot be nil.'

运行此逻辑的方法在此处获取普遍存在的 URL 后立即被调用:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
ubiquityContainerURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];

if (ubiquityContainerURL != nil)
[self writeAllBytesToLocalFile:@""];
});

我尝试了一些不同的方法来修复它,但它一直在发生。知道可能是什么问题吗?

谢谢大家的宝贵时间:)

最佳答案

好的,所以我想出了问题所在。 UIDocument 实例 doc 试图在其初始化方法中将文件扩展名附加到最终路径。

不幸的是,我以错误的方式覆盖了我的 UIDocument 子类中的 -(NSString)savingFileType 方法,这使得它向初始化方法返回一个 nil 字符串,因此试图附加一个 nil NSString 对象到文件路径。

所以无论如何其他人遇到这个问题,你可以尝试删除你的自定义覆盖方法,看看是否能解决问题:)

关于objective-c - 使用 UIDocument saveToUrl 在 NSURL 上抛出 NSInvalidArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12598854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com