如何将iOS swift应用程序中的记录插入Azure移动服务数据库?

时间:2014-06-25 11:48:31

标签: ios xcode azure swift

如果不太复杂,如何从iOS应用程序(使用Swift)上传单个数据量到Azure移动服务数据库?

具体来说,如何实际使用需要MSItemBlock闭包的表插入方法?

这是我追捕的装饰方法:

itemTable.insert(<#item: NSDictionary?#>, completion: <#MSItemBlock?#>)

2 个答案:

答案 0 :(得分:3)

有时你只想做一件简单的事情而不构建完全完美的解决方案。

就我而言,我想要的所有是从我的iOS应用程序(使用核心数据)插入/上传记录到我的Azure移动服务数据库。我不想使用表控制器或全表管理对象(还没有) - 只是一个简短的“概念验证”来测试基本的保存和上传模式。

我的所作所为:

  • 使用swift
  • 在Xcode 6中构建的iOS应用
  • CoreData链接起来并且运行良好

我想做什么:

  • 保存到我的应用中的本地核心数据后,将相应的记录插入我的Azure移动服务数据库

我做了什么:

  • 登录我的Azure门户并导航到我的移动服务

  • 选择iOS平台,然后打开“连接现有iOS app “link。

    按照屏幕上的说明进行操作:

  • 下载iOS SDK

  • 创建&#34;项目&#34;表(只需单击提供的按钮)

我接下来做了什么:

  • 将下载的sdk拖入我的Xcode项目

  • 在我的 Bridging-Header.h 文件中(当我有Xcode为我生成时) 以前运行“创建NSManagedObject子类... ”命令 核心数据模型)我添加了这个导入:

    #import "WindowsAzureMobileServices/WindowsAzureMobileServices.h"
    
  • AppDelegate.swift 中,我添加了对AzureClient的常量引用:

    let client = MSClient(applicationURLString: "https://mymobileapp.azure-mobile.net/", applicationKey: “aAaBbBcCc…")
    

<强>最后:

  • 这是我想要使用的功能:

    itemTable.insert(<#item: NSDictionary?#>, completion: <#MSItemBlock?#>)
    
  • 因此,在迅速的说法中,我使用以下内容插入记录 天堂天堂:

    var client = AppDelegate().client // To reference my constant in AppDelegate.swift
    
    var itemTable:MSTable = client.tableWithName("Item")
    var itemToInsert:NSDictionary = ["text":"My Awesome Item 1"]
    
    itemTable.insert(itemToInsert,
        completion: {
            insertedItem, error in
            if error{
                println("error: \(error)")
            }
            else{
                println("Success!")
            }
        }
    )
    

插入方法中的预期/返回的 MSItemBlock 让我困惑了一段时间,直到我读了一些swift closures vs objc < EM>块。

免责声明:上述片段在这个特殊情况下对我有用,但事实上我现在只是醉酒的猴子玩火柴,所以我确实认识到必须有更有效的方式这样做。但是,我在网上找不到关于MSItemBlock及其在 Swift 中的使用模式的内容,所以希望这可能证明开始点对于其他遇到类似问题的人来说。

答案 1 :(得分:1)

适用于Azure移动服务的iOS Swift快速入门将可供下载门户更新下载。在此期间,你可以在这里看到它,这里是插入行:

https://github.com/Azure/azure-mobile-services/blob/dev/quickstart/iOS-Swift/ZUMOAPPNAME/ZUMOAPPNAME/ToDoTableViewController.swift#L148

将项目插入表格应如下所示:

let originalItem = ["key":"value"];
itemTable.insert(originalItem) {
   (item, error) in
   // Logic here
}