相关疑难解决方法(0)

如何使用iCloud存储和同步应用程序文件

我已经有一个iPhone应用程序将数据存储在本地文档文件夹中的文件中.现在我了解了iCloud技术,我的第一个问题是:当有时我检查新版本时,有没有办法将iCloud用作目录?

我的意思是:我可以避免使用UIDocument,文件协调员和文件演示者吗?我只想知道是否可以将iCloud视为特殊文件夹,只使用NSFileManager来推送和检索文件.

最后注意:我不使用Core Data或任何数据库,我只有一个数据文件.

编辑:

我已经阅读了官方的Apple iCloud文档,所以不要将我链接到他们.我只需要一些代码示例.

cocoa-touch objective-c nsfilemanager icloud

33
推荐指数
4
解决办法
4万
查看次数

iCloud:我可以忽略那些禁用iCloud的人吗?

我对iCloud的想法有点挣扎,并在这里发布了一个更普遍的问题.我最大的问题是决定是否应该停止将用户的数据放在应用程序沙箱中的旧文档文件夹中.为了说明我的问题:

在此输入图像描述

文档没有给出答案,据我所看到的.假设我有一个处理不同txt文件的应用程序.一旦我启动我的应用程序,我只需检查是否有任何txt文件在云中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"AppDelegate: app did finish launching");
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];

    // (1) iCloud: init

    NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
    if (ubiq) {
        NSLog(@"User has iCloud enabled! Let's get the txt files from the cloud.");
        [self loadDocument];
    } else {
        NSLog(@"User doesn't have iCloud enabled. App is thus worthless.");
    }


    return YES;
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个方法来检查云中是否有任何txt文件,如果有,请加载它们.如果没有,我只是在云中创建新的txt文件.

这意味着应用程序不会在文档文件夹中存储任何数据.据我了解,一切都在我的设备的本地iCloud存储(如果用户脱机也可访问)或云端.所以文本文件存在于两个地方:在我的设备和云上.

所以根本不需要在我的本地文档文件夹中存储第三个副本,对吧?或者这是因为我忽略了某些原因而必不可少的?换句话说,如果我向用户提供iCloud,我应该使用本地文档文件夹?(我可以简单地忽略那些不会注册iCloud的人吗?)


编辑:只是为了澄清,当我在谈论应用程序的沙箱中的标准文档文件夹时,我的意思是:

NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch ipad ios icloud

8
推荐指数
1
解决办法
3544
查看次数

使用iCloud Documents Storage的最佳方式

我目前在iOS应用程序中使用本地存储.用户数据存储在文档目录中,现在我计划使用iCloud Documents存储.

这是我打算如何做到的:

  1. 检查设备上是否有iCloud可用

  2. 如果是,请使用URLForUbiquityContainerIdentifier获取iCloud容器URL

  3. 将新文件和文档保存到此新URL

为此,我使用此代码将返回文档文件夹的URL(iCloud或本地)

class CloudDataManager {

    class func getDocumentDiretoryURL() -> NSURL {
        let localDocumentsURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: .UserDomainMask).last! as NSURL
        let iCloudDocumentsURL = NSFileManager.defaultManager().URLForUbiquityContainerIdentifier(nil)?.URLByAppendingPathComponent("Documents")

        if userDefault.boolForKey("useCloud") && iCloudDocumentsURL != nil  {
            return iCloudDocumentsURL!
        } else {
            return localDocumentsURL
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是最好的做法吗?如果有一天iCloud不可用,我担心会出现问题,因此将使用本地目录而不是云容器,并且将为空.谢谢.

ios icloud swift

8
推荐指数
2
解决办法
5878
查看次数

列出iCloud中可用的文件

有没有办法列出我在iCloud中的所有文件(文件+数据)(来自Mac)?我相信NSMetadataQuery对象可以帮助我,但有没有示例代码?

谢谢 !

macos xcode cocoa icloud

2
推荐指数
1
解决办法
3718
查看次数

一次登录iOS - 最有效的方式?

我正在寻找为我的iPhone应用程序进行一次性登录的最佳方法.使用iOS 5.1.1 SDK但针对iOS 4.1进行部署.

其目的是获取生成的ID:如果存在ID,那么我不再需要登录,ID将以XML格式返回.

我的应用程序是当前基于Web的服务的扩展,它涉及位置更新的异步HTTP POST,ID为标识符,并检查返回的XML是否有任何错误.该ID不会过期.它是一个单一的视图应用程序,因为它只需要一个启动/停止按钮.

Web服务的用户名永远不会改变,因此我只想获取一次ID,如果一个人由于服务的性质和提供无信息的应用程序而破解并获取id,则没有任何好处或安全风险在用户身上.我想要的过程如下.

  1. 申请推出.
  2. 我们有存储的ID吗?(是/否)
  3. 如果是,请进入申请.
  4. 如果没有当前用户名/密码屏幕来获取ID.
  5. 在输入用户名/密码时,密码被加密,发送到服务器进行验证,如果是,则返回并存储id.

用户名/密码是两个输入和一个登录按钮.

最好的方法是什么?我真的不知道这里有什么方向.

iphone objective-c ios

1
推荐指数
1
解决办法
966
查看次数

有没有办法永久保存游戏数据?

因此,当应用程序被删除时,他们可以重新下载,数据仍然存在.我想永远存储一些数据.

iphone cocoa-touch ios

1
推荐指数
1
解决办法
102
查看次数

标签 统计

icloud ×4

ios ×4

cocoa-touch ×3

iphone ×3

objective-c ×2

cocoa ×1

ipad ×1

macos ×1

nsfilemanager ×1

swift ×1

xcode ×1