Ошибка компиляции диаграмм iOS

#ios #swift #xcode #charts #ios-charts

#iOS #swift #xcode #Диаграммы #ios-диаграммы

Вопрос:

Я пытаюсь разработать приложение, которое использует гистограммы, используя iOS Charts . Я просто настроил cocoapods файл, импортировал Charts.framework и скомпилировал проект, и я получил следующую ошибку:

/Users/i3t/Desktop/AppAdmin/ eCardFidAdmin/Pods/Charts/Source/Charts / Utils/ChartPlatform.swift:111:30: Метод не переопределяет ни один метод из своего суперкласса

Эта ошибка возникает в этой функции:

 public final override func touchesCancelled(touches: Set<NSUITouch>, withEvent event: NSUIEvent?)
{
    self.nsuiTouchesCancelled(touches, withEvent: event)
}
  

Я удаляю оператор переопределения и получаю эту новую ошибку:

/Users/i3t/Desktop/AppAdmin /eCardFidAdmin/ Pods/Charts/Source/ Charts / Utils/ChartPlatform.swift:111:21: Метод ‘touchesCancelled(:withEvent:)’ с помощью селектора Objective-C ‘touchesCancelled:withEvent:’ конфликтует с методом ‘touchesCancelled (:withEvent:)’из суперкласса ‘UIResponder’ с тем же селектором Objective-C.

Кто-нибудь знает, как я могу это исправить?

Комментарии:

1. Предполагая, что это Swift 3, подпись была изменена на with event: вместо withEvent event:

2. Пока не работает. Странно, с другими функциями проблем нет, просто функция «touchesCancelled»

Ответ №1:

Вы неправильно классифицируете его, используя

 import Charts
  

Ваш класс должен быть подклассом из ChartPlatform

Вы можете переопределить, только если вы создаете подклассы, иначе это не сработает

Комментарии:

1. Привет, спасибо за ваш ответ. Но я не понял. О каком классе вы говорите, когда говорите «Ваш класс»? Как я уже сказал, я ничего не меняю в своем коде, просто импортировал Chart.framework. Не могли бы вы объяснить лучше?

Ответ №2:

У меня такая же проблема, и я исправил ее, изменив параметр touches: как необязательный, как и его родительская функция. (swift 2.2)

 public final override func touchesCancelled(touches: Set<NSUITouch>?, withEvent event: NSUIEvent?)
    {
        self.nsuiTouchesCancelled(touches, withEvent: event)
    }