swift 错误集锦

时间:2023-03-09 10:03:30
swift 错误集锦

1.注册 NIB 出现错误

swift 错误集锦

//    error:'registerNib(_:forCellReuseIdentifier:)' has been renamed to 'register' (_:forCellReuseIdentifier:)'

解决:根据提示将 registerNib 改为 register 即可

leftTextCell = self.contentTableView.register(UINib(nibName:"ChatLeftTextMessageTableViewCell", bundle: nil), forCellReuseIdentifier:"ChatLeftTextMessageTableViewCell")

//    但是还报错
error:'register' produces 'Void' (aka '()'), not the expected contextual type 'xxx'

将其改为:

 //    在 viewDidLoad 中改为:
let nib = UINib(nibName: "ChatLeftTextMessageTableViewCell", bundle: nil) // nibName指的是我们创建的Cell文件名
self.contentTableView?.register(nib, forCellReuseIdentifier: "ChatLeftTextMessageTableViewCell") // 在 cellForRowAt indexPath: 加上这几行代码: let cellIdentifier = "ChatLeftTextMessageTableViewCell" leftTextCells = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as?
ChatLeftTextMessageTableViewCell

2. swift 中的类方法在 OC 中调用

 @objc

 class GroupSettingTableViewController: UITableViewController

 {

   @objc class func isDisturb(originId: String ?) -> Bool?

    {

   }

 }

 // 在 OC 中调用时会报错,因为 OC 中没有可选这个知识点,还有 swift 方法中如果有枚举、结构体也不能在 OC 中使用,因为它们与 OC 中的不同

修正为:

 @objc

 class GroupSettingTableViewController: UITableViewController

 {
  @objc class func isDisturb(originId: String ) -> Bool    {
let gstvc = GroupSettingTableViewController()
gstvc.groupId = originId
gstvc.reloadGroupNoDisturb()
if let b = gstvc.isDisturb {
return b
}
return false   } }