所有用户如何在 Swift 中连接到互联网时将 UIViews 发布到单个流中



我正在尝试在我的应用程序中添加一个功能,它可以获取UIView,然后将该UIView发布到任何拥有该应用程序的人都可以看到的流中。任何建议或帮助都会很棒,我希望这对未来的观众有所帮助。

尝试使用 Firebase API。Firebase 是一个易于使用的后端,可让您创建实时更新显示。在 Firebase 中,数据的格式为 JSON。有一个根字典,里面有(数组/字符串/其他字典)。

了解有关 JSON 的更多信息:http://developers.squarespace.com/what-is-json/

Firebase将允许您观察一系列词典,这些词典可以包含您可以在客户端加载到UIView中并显示的信息。当每个用户添加新数据视图时,从该数据视图中提取信息并将其发布到 firebase,Firebase 将更新所有其他客户端。

Firebase 快速入门:https://www.firebase.com/docs/ios/quickstart.html

这是一个示例:

import Firebase // in your view controller
var myRootRef = Firebase(url:"https://<YOUR-FIREBASE-APP>.firebaseio.com")
override func viewDidLoad() {
    super.viewDidLoad()
    let views = myRootRef.childByAppendingPath(pathString: "viewData")    // this is where you will store an array of viewData objects
    // Attach a closure to read the data at our views reference 
    // Every time a view is added Firebase will execute this block on all listeners
    ref.observeEventType(.Value, withBlock: { snapshot in
        if let arr = snapshot.value as? [[String:AnyObject]] {
            // UPDATE DISPLAY WITH THIS DATA
        }
    }, withCancelBlock: { error in
        println(error.description)
    })
}
func postData(data: [String:AnyObject]) {
    let views = myRootRef.childByAppendingPath(pathString: "viewData")    // this is where you will append new object
    let newObject = ref.childByAutoId() // only exists locally
    newObject.set(data) // Firebase handles getting this onto the server
}

viewDidLoad: 中的观察者是实时的,因此每次从任何客户端添加数据时,它都会更新所有客户端。调用 postData:每次用户添加包含数据的新信息时。在本例中,我将每个数据模型都设置为字典,但您可以根据需要进行更改。

JSON 格式的示例数据:

"app" : { 
    "viewData": [ 
        0: { 
            "title": "This is the first view",
            "number": 45 
        }, 
        1: { 
            "title": "This is the next view", 
            "number": 32 
        } 
    ] 
}

相关内容

  • 没有找到相关文章

最新更新