Swift 2.3 から Swift 3.0 で異常な問題が発生しました。コードを 2.3 から 3.0 に変換すると、次の問題が発生します。
コードは次のとおりです。
dynamic func onDataNotification(notification: NSNotification) {
var data = notification.userInfo as! Dictionary<NSString, ARoutedMessage>
if let packet = data[AEnginePacketDataKey] as? AEngineMessage,
currentDevice = self.currentDevice() {
if packet.messageId == MessageId.message && currentDevice.isDevice() {
// Some code
}
}
}
let packet = data[AEnginePacketDataKey] でエラーが発生しましたメンバー 'Subscript' へのあいまいな参照です。理由がわかりません。他の:
// String
extern NSString *AEnginePacketDataKey;
//ARoutedMessage Class
@interface ARoutedMessage : NSObject
@property NSMutableArray *payloadParameters;
@end
//AEngineMessage Class
@interface AEngineMessage : ARoutedMessage
@property (readonly)MessageId messageId;
- (id) initWithMessageId:(MessageId) mId;
@end
私を助けてください。