小编Tim*_*Tim的帖子

CFRunLoopPerformBlock与dispatch_async

我在后台线程上有一些计算工作,之后我需要更新一些calayer的转换,我试试用

dispatch_async(dispatch_get_main_queue(), ^{calayer.transform = newTransform});
Run Code Online (Sandbox Code Playgroud)

CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopCommonModes, ^(void) {calayer.transform = newTransform});
Run Code Online (Sandbox Code Playgroud)

我只是觉得它们是一样的,但是当我使用dispatch_async时,我发现calayer工作得很顺利(可能?).这两个功能有什么不同?

multithreading grand-central-dispatch ios

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

可编码结构包含协议属性

我有一个从可编码继承的协议

protocol OrderItem:Codable {
    var amount:Int{get set}
    var isPaid:Bool{get set}
} 
Run Code Online (Sandbox Code Playgroud)

结构符合此协议

struct ProductItem:OrderItem {
    var amount = 0
    var isPaid = false
    var price = 0.0
}
Run Code Online (Sandbox Code Playgroud)

然而,当我把这个结构放入可编码的结构时,我得到了错误

struct Order:Codable {
    var id:String
    var sn:String = ""
    var items:[OrderItem] = []
    var createdAt:Int64 = 0
    var updatedAt:Int64 = 0
}
Run Code Online (Sandbox Code Playgroud)

错误是

Type 'Order' does not conform to protocol 'Encodable'
Type 'Order' does not conform to protocol 'Decodable'
Run Code Online (Sandbox Code Playgroud)

但如果我更改项目:[OrderItem]到项目:[ProductItem],一切正常!

我该如何解决这个问题?

xcode swift

5
推荐指数
2
解决办法
1114
查看次数

关于通过 Cloud Functions for Firebase 创建用户的安全性

有很多关于创建用户而不使用 Firebase Web SDK 登录用户的讨论。我创建了一个Cloud Function并使用Admin SDK创建了一个用户:

exports.createUser = functions.https.onRequest((request, response) => {
  const param = request.body

  admin.auth().createUser({
    email: param.email,
    emailVerified: false,
    password: param.password,
  })
})
Run Code Online (Sandbox Code Playgroud)

但在我的 angular2 应用程序中,我必须使用 HTTP 将电子邮件和密码发布到 Cloud Functions for Firebase。在不加密密码的情况下执行此操作安全吗?

firebase google-cloud-functions angular

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