错误无法下标“AnyObject?”类型的值在 NSTimer 的 userInfo 中使用数组
Posted
技术标签:
【中文标题】错误无法下标“AnyObject?”类型的值在 NSTimer 的 userInfo 中使用数组【英文标题】:Error Cannot subscript a value of type 'AnyObject?' with Array in userInfo of a NSTimer 【发布时间】:2015-10-18 23:35:36 【问题描述】:你好,这是我的代码:
我不明白为什么我会出现这个错误......任何人都可以帮助我吗?
【问题讨论】:
【参考方案1】:userInfo
是AnyObject
。你不能下标AnyObject
。
将 listAlienBullet
转换为 SKSpriteNodes 的 Array
。
if let listAlienBullet = timer.userInfo as? [SKSpriteNode]
let alienForDestroying = listAlienBullet[0]
let bulletForDestroying = listAlienBullet[1]
【讨论】:
当我尝试这个时,我有另一个错误:键入'Dictionary您将SKSpriteNode
的数组放入计时器的userInfo
。
当计时器触发时,被调用的方法返回userInfo
作为AnyObject
。
只需将对象向下转换为正确的类型即可。
let listAlienBullet = timer.userInfo as! [SKSpriteNode]
let alienForDestroying = listAlienBullet[0]
let bulletForDestroying = listAlienBullet[1]
【讨论】:
以上是关于错误无法下标“AnyObject?”类型的值在 NSTimer 的 userInfo 中使用数组的主要内容,如果未能解决你的问题,请参考以下文章
无法使用“String”类型的索引为“[String : AnyObject]”类型的值下标
swift: 不能用字符串类型的索引下标 [Dictionary<String, AnyObject>] 类型的值
Swift错误无法转换类型'(AFHTTPRequestOperation?,AnyObject?)->()的值
Swift 2:“Set<UITouch>”类型的值没有成员“anyObject”[重复]
尝试保存数组,出现错误 - 无法将类型“[Data]”的值转换为预期的参数类型“[Dictionary<String, AnyObject>]”