- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 swift 库 "Sync" from Hyperoslo将 JSON 用户转换为核心数据对象。
let user = JSON.valueForKey("user")
Sync.changes(user , inEntityNamed: "User", dataStack: DataManager.manager, completion: { (response ) -> Void in
print("USER \(response)")
})
但是当使用我的 JSON 对象设置此方法的第一个参数时,出现预编译错误:
Cannot convert value of type 'AnyObject?' to expected argument type '[AnyObject]!'
如果将我的第一行替换为...
let user = JSON.valueForKey("user") as! [AnyObject]
...应用程序崩溃并出现此错误:
Could not cast value of type '__NSCFDictionary' (0x3884d7c8) to 'NSArray' (0x3884d548).
如何处理?
已解决 感谢@Eric.D 的解释
let user = [JSON.valueForKey("user")!]
最佳答案
changes()
的第一个参数应该是一个隐式展开的 AnyObject 数组,如下所示:
但是你的对象 user
是一个可选的 AnyObject。
解决方案:安全地解包 user
然后将其放入 [AnyObject]
数组中,然后在 changes()
中使用它。
关于json - 无法将类型 'AnyObject?' 的值转换为预期的参数类型 '[AnyObject]!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33395293/
此代码将(在 Swift 1.2 中)在最后一行失败: import Foundation let dictionary1 = [String: AnyObject]() NSUserDefaults
我需要做一些简单的事情,比如将 [AnyObject?] 转换为 [AnyObject]。所以数组中的可选值应该被解包,如果为 nil 则被踢出数组。在 Swift 中有一种简单的方法可以做到这一点吗
我正在尝试使用 UIActivityViewController 共享联系人 .vcf 文件。但我收到“任何对象?”与“AnyObject”不同 下面是我的代码行: let dirs : [Strin
import Cocoa class Brain{ var internalProgram = [AnyObject]() var program:AnyObject{
如何将协议(protocol)实例数组向下转换为 AnyObject?我在下面的代码示例中尝试了一些更合理的想法。 protocol Nameable : class { var name:
在默认模板中我们可以找到以下代码: func application(application: UIApplication, didFinishLaunchingWithOptions launchO
阅读 Apple 的代码我看到了以下内容(谈论钥匙串(keychain)服务): query[kSecAttrService as String] = service as AnyObject? An
我正致力于从 Objective-C 教程转换此委托(delegate)协议(protocol)函数,但在尝试通过使用下标返回基于键的值来访问字典中的值时遇到错误。我不太确定这里的错误是什么意思。任何
我正在尝试使用 performSegueWithIdentifier 将一些字符串数据传递给 View Controller ,但我收到此错误 Cannot convert value of type
如果你看一下这个函数: typealias JSONDictionary = [String: AnyObject] private func allIdentifiersInJson(json: [
我正在尝试调用一个 Objective-C 方法,该方法采用一个 block ,该 block 使用 NSArray 进行回调。 我得到以下编译错误: AnyObject[] 不是 AnyObject
我正在为 IOS 学习 swift ,当我在 youtube 上做巡回演出时(Swift:Skip Wilson 的 Swift:使用外部数据库和 API)对于外部数据库,我找到了部分: servic
我很难理解为什么 AnyObject 的实例等于 Anyobject 的数组,即为什么这个语句 var one: AnyObject = [AnyObject ]() 有效吗? 最佳答案 用这段代码
我有两段几乎相同的代码让我感到困惑。两者都以令我惊讶的方式运作。第一个作品,如下所示: let HTTPBody = NSJSONSerialization.dataWithJSONObject(js
我正在使用 swift 库 "Sync" from Hyperoslo将 JSON 用户转换为核心数据对象。 let user = JSON.valueForKey("user") Sync.chan
我在 Swift 3.0 中工作,我的数组有问题。每行包含一个包含 2 个值的字典。 当我想更改此值时,我收到此消息: “无法使用类型为‘AnyObject’的索引下标类型为‘[AnyObject]’
let otherArray:[AnyObject] = ["a","aa","aaa"] let otherArrayElemnt = otherArray[0] let myArr
我在我的 AppDelegate.swift 文件中发现了这个错误,它出现在 AppDidFinishLaunchingWithOptions 函数中。它在来自 Parse 框架的一行代码上引发错误。
我正在尝试将我当前的项目转换为 Swift 3,但遇到了有关 objectForKey 的问题至 objectFor转换。 myData 的类型是 AnyObject 之前: let x = myDa
我有一个方法: func tableAsDictionary() -> [String: AnyObject] 然后我需要测试这个: let tableDictionary = table.table
我是一名优秀的程序员,十分优秀!