NSNotificationCenter.defaultCenter().postNotificationName userinfo は、AnyObject プロトコルに準拠したデータを含む辞書のみを受け入れるため、構造体を NSNotification の一部として投稿する方法について何か提案はありますか?
私の最初の考えは、構造体をクラスにラップすることですが、そもそも構造体を使用するポイントは何でしょうか。
何か不足していますか、それとも Swift を Objective C 用に構築された API と混同した結果ですか?
これが私が説明していることのデモンストレーションです: -
class wrapper: NSObject {
var aStructToWrap: aStruct
init(theStruct: aStruct) {
aStructToWrap = theStruct
super.init()
}
}
struct aStruct {
var aValue: String
}
let aRealStruct = aStruct(aValue: "egg")
NSNotificationCenter.defaultCenter().postNotificationName("aKey", object: nil, userInfo: ["anotherKey": aRealStruct]) // ERR: Extra argument 'userinfo' in call
let wrappedStruct = wrapper(theStruct: aRealStruct)
NSNotificationCenter.defaultCenter().postNotificationName("aKey", object: nil, userInfo: ["anotherKey": wrappedStruct]) // no error