Использование неразрешенного идентификатора 'UIBezierPath' - PullRequest
1 голос
/ 28 мая 2019

Я строю проект, использующий библиотеку диаграмм, которую я изначально нашел при создании приложений для Android под названием MPAndroidCharts.Он был перенесен на iOS / Swift и отлично работал.Я столкнулся со странной проблемой, хотя.В пятницу, когда я ушел с работы, проект работал отлично, я тестировал приложение в конце каждого дня и в начале каждого дня, не зная почему, просто я так делаю.Итак, в пятницу, когда я ушел с работы, я пришел, открыл проект и попытался его построить, а теперь я получаю ошибку сборки, в которой говорится: «Использование неразрешенного идентификатора« UIBezierPath »означает« NSBezierPath »?»Я ничего не обновлял в своей системе и ничего не изменилось в базе кода, но теперь он не будет собираться.

Когда я пытаюсь обновить его до NSBezierPath, я получаю кучу других ошибок, потому что у него нет тех же аргументов в конструкторе, и я не уверен на 100%, как преобразовать его в NSBezierPath.Мой конструктор прост (ish) ...

let bezierPath = UIBezierPath(roundedRect: barRect, byRoundingCorners: UIRectCorner.allCorners, cornerRadii: CGSize(width: cornerRadius, height: cornerRadius))
let roundedPath = bezierPath.cgPath

Когда я обновляюсь до NSBezierPath, я получаю ошибки о том, что UIRectCorner должен быть NSRectPointer, который не имеет ".allCorners", а затем конструктор всенеправильно и не строит.

Я пытаюсь сделать это не слишком общим, потому что я знаю, что это плохо, но я не знаю, как это исправить, или почему это просто волшебным образом стало неразрешенным за выходные без моего обновления xCode или моего кодабаза или любые связанные библиотеки.Любая помощь будет принята с благодарностью.Если вам это нужно, ссылка на библиотеку графиков ... https://github.com/danielgindi/Charts

1 Ответ

1 голос
/ 28 мая 2019

теперь я получаю сообщение об ошибке сборки: "Использование неразрешенного идентификатора" UIBezierPath "вы имели в виду" NSBezierPath "?"

UIBezierPath - это класс UIKit, и, поскольку UIKit - это платформа iOS, вы можете использовать UIBezierPath в проектах iOS, но не в проектах MacOS.NSBezierPath является классом AppKit, а AppKit является платформой macOS, поэтому вы можете использовать его на macOS, но не на iOS.

Если Xcode предлагает NSBezierPath в качестве альтернативы, то, похоже, выкаким-то образом переключил вашу цель на сборку для macOS вместо iOS.Проверьте это, а также убедитесь, что ваш проект связан с UIKit.

Когда я пытаюсь обновить его до NSBezierPath, я получаю кучу других ошибок, потому что у него нет тех же аргументов в конструкторе иЯ не уверен на 100%, как преобразовать его в NSBezierPath.

Вам не следует переключаться на NSBeziierPath, если вы не переносите свой проект на macOS.Если это то, что вы делаете, тогда да, вам нужно переключиться, и вам нужно будет прочитать документацию NSBezierPath , чтобы выяснить, как переписать код для использования этого API.Вкратце, похоже, что вы должны иметь возможность использовать init(roundedRect:,xRadius:,yRadius:) с cornerRadius для двух последних параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...