我正在使用Swift,SpriteKit和Firebase进行多人游戏.
这是我第一次使用多人游戏和GameKit,所以我没有得到配对的概念.我读了Apple文档,但老实说它不清楚,它告诉我实时匹配可以做什么,并在objective-c中显示一些代码.
我花了很长时间在swift中搜索配对,我只发现了这个.
我知道每场比赛都是从比赛开始,matchRequest但我不知道该怎么做.
配对如何运作?我应该使用什么方法?有谁知道我在哪里可以找到一个例子?
我读过 UI 应该总是在主线程上更新。但是,当谈到实现这些更新的首选方法时,我有点困惑。
我有各种函数来执行一些条件检查,然后结果用于确定如何更新 UI。我的问题是整个函数应该在主线程上运行吗?应该只更新用户界面吗?我可以/应该在另一个线程上运行条件检查吗?它是否取决于功能的作用或您希望它完成的速度?
示例一个在没有线程的情况下更改 ImageView 中的图像的函数:
@IBAction func undoPressed(_ sender: Any) {
if !previousDrawings.isEmpty {
previousDrawings.remove(at: previousDrawings.count - 1)
if let lastDrawing = previousDrawings.last {
topImageView.image = lastDrawing
}
else {
// empty
topImageView.image = nil
}
}
}
Run Code Online (Sandbox Code Playgroud)
我应该topImageView.image在主线程上设置吗?像这样:
@IBAction func undoPressed(_ sender: Any) {
if !previousDrawings.isEmpty {
previousDrawings.remove(at: previousDrawings.count - 1)
if let lastDrawing = previousDrawings.last {
DispatchQueue.main.async {
self.topImageView.image = lastDrawing
}
}
else {
DispatchQueue.main.async {
self.topImageView.image = nil
}
}
} …Run Code Online (Sandbox Code Playgroud) 我想构建一些将保留以便快速搜索的数组.如果我使用这样的东西:
let dictionary: [Int:Int] = [:]
for i in 0 ..< 10000000 {
dictionary[i] = 0
}
Run Code Online (Sandbox Code Playgroud)
请问查询:
dictionary[n] == nil
Run Code Online (Sandbox Code Playgroud)
在对数时间内执行?
如果是,对其他类型是否相同:Float,Double,String.
最后,我需要它使用UUID类型,它会工作吗?
swift ×3
ios ×2
dictionary ×1
firebase ×1
indexed ×1
logarithm ×1
multiplayer ×1
performance ×1
sprite-kit ×1