Просто перенесен в swift 5 из swift 3. Как исправить следующие ошибки? - PullRequest
0 голосов
/ 10 апреля 2019

Просто перенес Swift 3 в Swift 5 и получаю все эти ошибки. У меня не было ошибок до этого.

var imageData = UIImageJPEGRepresentation(imgTemp, 1)  

ОШИБКА: 'UIImageJPEGRepresentation' заменен методом экземпляра 'UIImage.jpegData (compressQuality:)'

tableView.SeparatorStyleCell.none

ОШИБКА: Значение типа 'UITableView?' не имеет члена 'SeparatorStyleCell'

tableView.UITableView.AutomaticDimension

ОШИБКА: Значение типа 'UITableView?' не имеет члена 'UITableView'

self.tableView.UIEdgeInset  = insetsMake(8, 0, 15, 0);

ОШИБКА: Использование неразрешенного идентификатора "insetsMake"

attributedString.addAttributes(boldFontAttribute, range: datetime.range(of: "Read"))

ОШИБКА: Использование неразрешенного идентификатора 'boldFontAttribute'

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Похоже, какой-то осиротевшей Objective-C удалось выжить в вашем проекте.

tableView.SeparatorStyleCell.none

должно быть

tableView.separatorStyle = .none

Далее:

tableView.UITableView.AutomaticDimension

должно быть

tableView.rowHeight = UITableView.automaticDimension

Что касается:

var imageData = UIImageJPEGRepresentation(imgTemp, 1)  

Старая функция C переместила класс, с которым она работала.(Мне нравится, как Apple очищает старые интерфейсы)

var imageData = imgTemp.jpegData(compressionQuality: 1)

Что касается:

self.tableView.UIEdgeInset  = insetsMake(8, 0, 15, 0);

mokagios, ответ правильный.Снова его очистка на интерфейсах Apple.UIEdgeInsets теперь является типом и имеет функцию инициализации.

Наконец:

attributedString.addAttributes(boldFontAttribute, range: datetime.range(of: "Read"))

Я предполагаю, что ваш boldFontAttribute - это Dict, содержащий соответствующий ключ и шрифт.В отличие от других атрибутов, таких как подчеркивание, жирный шрифт является не атрибутом, а шрифтом.Чтобы выделить диапазон жирным шрифтом, необходимо назначить другой шрифт для диапазона.В Свифте это будет

let boldFontAttribute = { NSAttributedString.Key.font : YourBoldFont }
0 голосов
/ 10 апреля 2019

Привет @ Бретт Тейлор .

Ошибки, которые вы получаете, представляют собой смесь компилятора, сообщающего вам, что используемый вами синтаксис устарел для этой версии Swift, например ::

'UIImageJPEGRepresentation' был заменен методом экземпляра 'UIImage.jpegData (compressQuality:)'

и Swift migrator делает что-то смешное с вашим кодом, например ::

self.tableView.UIEdgeInset  = insetsMake(8, 0, 15, 0);

У вас есть этот код под контролем версий? В идеале Git-репо?

Если это так, вы можете отменить все эти изменения и начать заново. Или просто установите версию Swift на 5 без использования переносчика и устраните каждую ошибку компилятора по мере ее появления.

Лучшее, что нужно сделать, - это устранять одну ошибку за раз, и, возможно, делать коммит каждый раз, когда вы что-то решаете, так что вы можете начать с этого, если следующий шаг не сработает, без потери всех ваших прогресс.

Для испорченного кода, может быть, вы просто получите представление о том, что код делал раньше, и попытаетесь переписать его с нуля.

В приведенном выше примере, я предполагаю, что это код, поэтому задайте вставку содержимого или какое-либо другое свойство вставки табличного представления. Вы можете переписать это так:

tableView.contentInset = UIEdgeInsets(top: 8, left: 0, bottom: 15, right: 0)

Обратите внимание, что я удалил self., обычно в этом нет необходимости, если вы не находитесь внутри замыкания и вам нужно сделать это явным.

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