2017-02-05 11 views
-1

У меня проблема с рамкой AWS DynamoDB. XCode дает мне предупреждение на следующей строке:Использование литерала для Objective-C является устаревшей ошибкой из рамки AWS DynamoDB

var model: AWSDynamoDBObjectModel {get set} 

// This lines gives me "Use of literal for Objective-C ... 
if (model.classForCoder.respondsToSelector("rangeKeyAttribute")) { 
..... 
} 

Я попытался решить эту проблему путем repeleacing с этой линией:

if (model.classForCoder.respondsToSelector(Selector("rangeKeyAttribute"))) { 

и кажется, что Селектор также амортизируется в Swift 2.3.

Любая идея, как избавиться от этого предупреждения?

+0

Вы обновили версию последней версии AWS в первую очередь? И у вас есть ваш Xcode и т. Д. На сегодняшний день? –

+0

Amazon еще не выпустил обновление для Swift 3. – user30646

+0

ОК? Итак ... Вы в первую очередь обновили версию рамочной версии AWS? И у вас есть ваш Xcode и т. Д. На сегодняшний день? Посмотрите здесь: http://stackoverflow.com/questions/41402926/lots-of-errors-when-trying-to-use-aws-dynamodb-with-swift-3 и здесь http://stackoverflow.com/questions/ 41868921/can not-call-value-of-non-function-type-selector-bool-conversion-to-swi –

ответ

0

Использование #selector синтаксис. Это современный способ.

+1

http://www.apeth.com/swiftBook/ch02.html#_selectors – matt

+0

Я не уверен, что это правильный способ использовать #selector, но кажется, что он не возвращает значение, которое отвечает требованиям ToSelector. Он дает мне «Невозможно вызывать значение нефункционного типа (Селектор) -> Bool». – user30646

+0

«Я не уверен, как правильно использовать' # selector'. Но ссылка, которую я вам дал вам, - это правильный путь. – matt