2016-11-21 2 views
0

Ошибка происходит здесьне может вызывать со списком аргументов типа Swift 3

self.iotDataManager.register(withShadow: statusThingName, eventCallback: self.deviceShadowCallback) 

где

let statusThingName="TemperatureStatus" 

и

func deviceShadowCallback(_ name:String!, operation:AWSIoTShadowOperationType, operationStatus:AWSIoTShadowOperationStatusType, clientToken:String!, payload:Data!) -> Void { 
    DispatchQueue.main.async { 
     //code 

    } 
} 

И подпись

self.iotDataManager.register(withShadow: <String!>, eventCallback: { (<String?>, <AWSIoTShadowOperationType>, <AWSIoTShadowOperationStatusType>, <String?>, <Data?>) in 
       <code> 
      }) 

Я думаю, что это может быть ошибка в Swift, это преобразование из Swift 2 в 3, которое я пытаюсь исправить.

ответ

0

Декларация функций:

func deviceShadowCallback(
          _ name: String?, 
          operation: AWSIoTShadowOperationType, 
          operationStatus: AWSIoTShadowOperationStatusType, 
          clientToken: String?, 
          payload: Data?) { 

} 

func register(
       withShadow: String, 
       eventCallback: (
           String?, 
           AWSIoTShadowOperationType, 
           AWSIoTShadowOperationStatusType, 
           String?, 
           Data?) -> Void) { 

} 

Исполнение:

let statusThingName = "status" 
register(withShadow: statusThingName, eventCallback: deviceShadowCallback) 

я мог скомпилировать и запустить его без каких-либо проблем.

+0

Возможно, что-то не так с Xcode, то в моем случае. Спасибо. – Marin

+0

Удачи в этом вопросе? То же самое происходит здесь ... Мой код выглядит правильно, как @Wilson – BrettStuart

Смежные вопросы