如果不太复杂,如何从iOS应用程序(使用Swift)上传单个数据量到Azure移动服务数据库?
具体来说,如何实际使用需要MSItemBlock闭包的表插入方法?
这是我追捕的装饰方法:
itemTable.insert(<#item: NSDictionary?#>, completion: <#MSItemBlock?#>)
答案 0 :(得分:3)
有时你只想做一件简单的事情而不构建完全完美的解决方案。
就我而言,我想要的所有是从我的iOS应用程序(使用核心数据)插入/上传记录到我的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快速入门将可供下载门户更新下载。在此期间,你可以在这里看到它,这里是插入行:
将项目插入表格应如下所示:
let originalItem = ["key":"value"];
itemTable.insert(originalItem) {
(item, error) in
// Logic here
}