简单地将图像发送到 icloud 时出现“无法完成操作。不允许操作”错误

Posted

技术标签:

【中文标题】简单地将图像发送到 icloud 时出现“无法完成操作。不允许操作”错误【英文标题】:"The operation couldn’t be completed. Operation not permitted" error when simply sending image to icloud 【发布时间】:2013-05-25 17:59:05 【问题描述】:

我只是想把这张图片上传到 iCloud。它一直给我错误“无法完成操作。不允许操作”。我直接从基于文档的应用程序编程指南中提取了这段代码,并且我相信我已经正确设置了我的所有证书、标识符、配置文件和权利。任何帮助将非常感激。这非常令人沮丧。

#import "docx.h"

@implementation docx

-(IBAction)test:(id)sender

    NSURL *src = [NSURL URLWithString:@"/Users/rjm226/Desktop/jh.jpg"];
        NSLog(@"%@", src);

    NSURL *dest = NULL;

    NSURL *ubiquityContainerURL = [[[NSFileManager defaultManager]
                                    URLForUbiquityContainerIdentifier:nil]
                                   URLByAppendingPathComponent:@"Documents"];

    if (ubiquityContainerURL == nil) 
        NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: NSLocalizedString(@"iCloud does not appear to be configured.", @""),
                              NSLocalizedFailureReasonErrorKey, nil];

        NSError *error = [NSError errorWithDomain:@"Application" code:404
                                         userInfo:dict];

        [self presentError:error modalForWindow:[self windowForSheet] delegate:nil didPresentSelector:NULL contextInfo:NULL];

        return;
    

    dest = [ubiquityContainerURL URLByAppendingPathComponent:
            [src lastPathComponent]];

    //Move file to iCloud

    dispatch_queue_t globalQueue =
    dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_async(globalQueue, ^(void) 

        NSFileManager *fileManager = [[NSFileManager alloc] init];

        NSError *error = nil;
        // Move the file.

        BOOL success = [fileManager setUbiquitous:YES itemAtURL:src
                                   destinationURL:dest error:&error];

        dispatch_async(dispatch_get_main_queue(), ^(void) 
            if (! success) 
                [self presentError:error modalForWindow:[self windowForSheet]
                          delegate:nil didPresentSelector:NULL contextInfo:NULL];
            
        );
    );


@end

【问题讨论】:

【参考方案1】:

这真是令人沮丧。

欢迎使用 iCloud。过一段时间你就会习惯这种感觉。但与此同时,您还有其他问题。

NSURL *src = [NSURL URLWithString:@"/Users/rjm226/Desktop/jh.jpg"];

这不会为您提供有效的 URL,这将是一个问题。你需要的是:

NSURL *src = [NSURL fileURLWithPath:@"/Users/rjm226/Desktop/jh.jpg"];

这将为您提供一个有效的file:// URL。

【讨论】:

非常感谢。这并没有解决问题,但肯定是代码中的错误。

以上是关于简单地将图像发送到 icloud 时出现“无法完成操作。不允许操作”错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试将图像发送到 React Native 中的预签名 URL 时出现网络错误

从 iOS 应用程序向 Chromecast 发送本地图像时出现问题

发送连续网络摄像头图像时出现内存不足错误java

发送图像时出现 Python 套接字错误。无法解码字节/意外 EOF

通过axios发送文件时出现500错误

防止在 OS X 中启动时出现 iCloud 打开文件对话框 [重复]