- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在使用以下代码时遇到此错误:
var dict: Dictionary<String, AnyObject> = [
"peerID": peerID,
"state": state
]
我正在使用 MultipeerConnectivity
:peerID 是 MCPeerID 类型(例如,MCPeerID(displayName: "morpheus")
),状态是 MCSessionState(一个枚举,例如, MCSessionState.Connected
).显然,我不能将枚举转换为 AnyObject?我该如何解决这个问题?
最好的。
编辑:我尝试使用 Dictionary
func session(session: MCSession!, peer peerID: MCPeerID!, didChangeState state: MCSessionState) {
var dict: Dictionary<String, Any> = [
"peerID": peerID,
"state": state
]
NSNotificationCenter.defaultCenter().postNotificationName(
"MCDidChangeStateNotification",
object: nil,
userInfo: dict
)
}
Xcode 指示“userInfo: dict”行,但有以下异常:
Thread 10: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
也许这不会告诉您太多信息,那么我可以发布哪些有用的信息呢?
编辑:
通过在运行时(崩溃后)检查对象,这是我得到的:
state MultipeerConnectivity.MCSessionState Connecting Connecting
dict Swift.Dictionary<Swift.String, protocol<>>
[0] Swift._DictionaryElement<Swift.String, protocol<>>
key Swift.String "state"
core Swift._StringCore
value protocol<>
payload_data_0 Builtin.RawPointer 0x0
payload_data_1 Builtin.RawPointer 0x0
payload_data_2 Builtin.RawPointer 0x0
instance_type Builtin.RawPointer 0x0
那里似乎有一些空指针,但“state”变量似乎没问题......
注意:我注释掉了 peerID 分配。
最佳答案
AnyObject
仅适用于类类型,使用 Any
也支持枚举(参见 docs )。
关于ios - 类型 MCSessionState 不符合协议(protocol) 'AnyObject',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109982/
每当我尝试使用 Multipeer Connectivity Framework 连接对等点时,对等方的状态从 MCSessionState.Connecting 更改为 MCSessionState
我们使用以下代码通知用户点对点连接状态。但是在“println ("State Changed to\(state.displayName)"is显示状态。有没有人面临同样的问题。 func se
我在使用以下代码时遇到此错误: var dict: Dictionary = [ "peerID": peerID, "state": state ] 我正在使用 MultipeerC
我是一名优秀的程序员,十分优秀!