У меня есть необычная проблема в swift 2.3 до Swift 3.0. После того, как преобразовать код от 2.3 до 3.0, я получаю этот вопрос: "неоднозначную ссылку на член„Индекс“,Swift 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
}
}
}
Получения ошибки на выпускаемом пакете = данные [AEnginePacketDataKey], как Неоднозначная ссылка на «Подстрочный» участника, я не понимаю, почему ?. Прочее:
// 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
Пожалуйста, помогите мне.
Если вы предполагаете, что NSString является указателем на основе звездочки ... это не так. Вот как объявляются объекты Objective C. Указателем NSString будет «NSString ** foo» –
@LeeAnnRucker После двойной проверки, я уверен, что мой ответ верен. Переменные объекта в Objective C являются указателями на их объекты. 'NSString * foo' является указателем на NSString. 'NSString ** foo' будет указателем на указатель. – Robert