注册 登录
主题 : 怎么向icloud批量上传文件?
级别: 侠客
UID: 609304
精华: 0
发帖: 179
可可豆: 611 CB
威望: 611 点
在线时间: 182(时)
注册时间: 2017-03-22
最后登录: 2019-06-17
0 楼:  发表于: 2018-08-10 23:52    发自: Web Page
来源于 一般提问 分类

怎么向icloud批量上传文件?   

怎么把本地的图片批量上传到icloud?有没有大牛给提供一份DEMO或思路的代码?谢谢
级别: 骑士
UID: 623940
精华: 0
发帖: 236
可可豆: 406 CB
威望: 406 点
在线时间: 134(时)
注册时间: 2017-09-19
最后登录: 2019-04-18
13 楼:  发表于: 2018-08-22 21:20    发自: Web Page
代码没有问题,检查沙盒还有icloud的权限
级别: 侠客
UID: 609304
精华: 0
发帖: 179
可可豆: 611 CB
威望: 611 点
在线时间: 182(时)
注册时间: 2017-03-22
最后登录: 2019-06-17
12 楼:  发表于: 2018-08-22 09:56    发自: Web Page
              
级别: 侠客
UID: 609304
精华: 0
发帖: 179
可可豆: 611 CB
威望: 611 点
在线时间: 182(时)
注册时间: 2017-03-22
最后登录: 2019-06-17
11 楼:  发表于: 2018-08-22 00:08    发自: Web Page
回 10楼(409xxxx) 的帖子
//iCloud云端目录
NSURL *iCloudDirectory = [[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil] URLByAppendingPathComponent:@"Documents"];
NSURL *iCloudImgDirectory = [iCloudDirectory URLByAppendingPathComponent:@"Img"];

if ([fm isUbiquitousItemAtURL:[iCloudImgDirectory URLByAppendingPathComponent:@"1.jpg"]]) {
NSLog(@"1.jpg存在");
}
NSString *path = [iCloudImgDirectory??absoluteString];
NSDirectoryEnumerator *dirEnum;
dirEnum = [fm enumeratorAtPath:path];

while ((path = [dirEnum nextObject]) != nil)
{
NSLog(@"%@",path);
}

还是遍历不出来,怪事了。但这个icloud目录里确实是有文件的。如果把这段代码中的icloud目录换成本地目录就能遍历出文件来。
[ 此帖被sbqios2017在2018-08-22 00:14重新编辑 ]

级别: 骑士
UID: 623940
精华: 0
发帖: 236
可可豆: 406 CB
威望: 406 点
在线时间: 134(时)
注册时间: 2017-09-19
最后登录: 2019-04-18
10 楼:  发表于: 2018-08-21 23:20    发自: Web Page
FileManager.enumerator

用这个
级别: 侠客
UID: 609304
精华: 0
发帖: 179
可可豆: 611 CB
威望: 611 点
在线时间: 182(时)
注册时间: 2017-03-22
最后登录: 2019-06-17
9 楼:  发表于: 2018-08-21 18:30    发自: Web Page
回 8楼(409xxxx) 的帖子
NSArray *contents = [fm contentsOfDirectoryAtPath:[iCloudDirectory  absoluteString] error:NULL];
我用这种方法遍历iCloud目录为空不知道为什么,网上查了一下,也没有查到,能再指教一下吗?谢谢您 。
级别: 骑士
UID: 623940
精华: 0
发帖: 236
可可豆: 406 CB
威望: 406 点
在线时间: 134(时)
注册时间: 2017-09-19
最后登录: 2019-04-18
8 楼:  发表于: 2018-08-20 21:31    发自: Web Page
回 6楼(sbqios2017) 的帖子
那二楼代码是对的,在主线程修改就可以了

如果没有进入打印应该检查触发位置,和控件绑定
级别: 骑士
UID: 623940
精华: 0
发帖: 236
可可豆: 406 CB
威望: 406 点
在线时间: 134(时)
注册时间: 2017-09-19
最后登录: 2019-04-18
7 楼:  发表于: 2018-08-20 21:11    发自: Web Page
回 6楼(sbqios2017) 的帖子
setUbiquitous 方法没有错误产生即为成功

级别: 侠客
UID: 609304
精华: 0
发帖: 179
可可豆: 611 CB
威望: 611 点
在线时间: 182(时)
注册时间: 2017-03-22
最后登录: 2019-06-17
6 楼:  发表于: 2018-08-20 14:10    发自: Web Page
回 5楼(409xxxx) 的帖子
如果+1记录,会有什么方法能返回所有文件都复制成功呢?因为我是遍历的时候,一个一个把文件上传上去的。
还有这个帖子也出现了点问题
http://www.cocoachina.com/bbs/read.php?tid=1757880
您看能不能指教一下?谢谢。我是新手,所以老犯一些初级的错误。
级别: 骑士
UID: 623940
精华: 0
发帖: 236
可可豆: 406 CB
威望: 406 点
在线时间: 134(时)
注册时间: 2017-09-19
最后登录: 2019-04-18
5 楼:  发表于: 2018-08-20 13:58    发自: Web Page
回 4楼(sbqios2017) 的帖子
可以这样用copyItem的方法,因为iCloud的原理其实是监控icloud路径内的文件变化,然后给予上传,但会使得整个流程变得复杂。

比如你要拷贝一个文件到这个路径下,如果原来的文件是存在的,你可能就要删除它然后再拷贝。但是这样会产生一个问题,iCloud会认为这个文件是新的,并不是原来的,哪怕路径和名字一样。所以其他的机器也会收到一个删除文件的消息,然后再出现一条add消息,再最后出现一条修改消息(更新),所以要尽量的避免用copyItem这个方法,除非你不介意它产生的消息,或者说你的图标没有修改,只有1个版本的情况下,就可以用这个方法。

不用什么+1,遍历完成之后得到的文件,都是必有的文件。那么只要保证icloud上有这个文件即可,就是说,你应该考虑当icloud不存在这个文件或者存在的时候如何判断这个文件是否是我需要的是最新的。

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部