swift2 Swift 3.0:对成员“下标”的引用不明确问题

zc0qhyus  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(166)

我在Swift 2.3到Swift 3.0中遇到了一个不寻常的问题。一旦我将代码从2.3转换到3.0,我就遇到了这个问题:“对成员”Subscribe“的引用不明确,
代号为:

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]上获取错误,因为对成员'Subscribe'的引用不明确,我不明白为什么?。其他:

// 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

请帮帮我。

8wtpewkr

8wtpewkr1#

“ambiguous reference”错误告诉您试图用作下标的变量的类型错误。
在本例中,data是一个字典,它需要一个NSString下标。看起来AEnginePacketDataKey在Objective C代码中被定义为一个指向NSString的指针,但是你没有显示在哪里(如果)给它赋值。在你尝试将它用作data的下标之前,请确保你给它赋值了一个实际的NSString

相关问题