我已将我的项目迁移到Swift 3并且NSKeyedArchiver无法正常工作.我在尝试解码这样的对象时实际上有一个运行时错误:
let startDayTime = aDecoder.decodeObject(forKey: Key.startDayTime) as! Int
Run Code Online (Sandbox Code Playgroud)
它在Xcode 7.3中的Swift 2.2中完美运行.还有其他人遇到过这样的麻烦吗?
PS我在模拟器和设备上都有这个错误.
更新:我通过使用decodeInteger(forKey key: String)而不是来解决这个问题decodeObject(forKey key: String).由于某种原因,AnyObject不会在Swift 3中转换为Integer,尽管它在Swift 2.2中也是如此
这就是我的场景:1)我正在开发一个使用 Firebase 存储的 iOS 应用程序。2)我的应用程序具有基于 Facebook 登录的自定义轻量级身份验证机制。3) 所有经过身份验证的用户都可以访问 firebase 存储中的任何数据。4)所有其他人都不能。
我只想确保只有我的应用程序可以访问存储。如果我要构建自己的服务器,我只会使用一些 API 密钥来评估每个传入的请求,这些 API 密钥是在应用程序中预先设置的,因此来自我的应用程序的所有请求都得到成功解决。如果其他人想使用我的 API,他应该知道 API 密钥。
我明白了,这不是 WEB-APP 的解决方案,因为每个人都可以看到源代码(和 API 密钥),但这对于移动应用程序来说是可以的,没有这种可能性。
所以我的问题是:我应该为此烦恼还是 Firebase 已经根据配置文件中的 APIkey 完成了这项工作。如果我应该,你会推荐什么?
也许我错过了 firebase 文档中的某些内容,但我发现他们不清楚这个特定问题。