• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 未调用 ObjC 类方法。 GDB玩游戏?

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:45:00 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个自定义的 UITableViewController,我试图用它来管理 UITableView。我的代码在包含 UITableView 的主 UIViewController 中的流程如下:

    _messagesTableVC = [[AllMessagesTableViewController alloc] init];

    _allMessageTableView.dataSource = _messagesTableVC;
    _allMessageTableView.delegate = _messagesTableVC;

    [_allMessageTableView reloadData];

AllMessagesTableViewController 自定义 UITableViewController 类已初始化,它执行所需的任何处理,我将 _allMessageTableView(UITableView)的委托(delegate)设置为我的自定义类。

当我运行此代码时,程序的行为就像自定义类不存在但没有发生错误一样。似乎没有调用自定义类中的任何方法,没有 init,没有 initWithCoder,什么都没有(我已经设置了断点并检查了;))。

正如您在下面的屏幕截图中看到的,我在自定义类中的自定义方法 refreshData 之后设置了一个断点,我设置为返回 YES。我将 refreshData 的返回值分配给一个局部变量 test

在调试器中:

  1. _messagesTableVC 自定义类似乎不是 nil。
  2. test 似乎不存在。
  3. 此处未显示,但是当我尝试在调试器中运行 [_messagesTableVC refreshData] 时,它显示 error: Execution was interrupted, reason: Attempted to dereference an invalid ObjC Object or send it一个无法识别的选择器。 进程已经返回到表达式求值前的状态。。那么 _messagesTableVC 实际上是 nil 吗??

screenshots

是什么导致了这些问题,或者 GDB 正在玩游戏?这是一个消息应用程序扩展,以防万一。谢谢。

更新:这是自定义类 init 和 refreshData 的代码

- (instancetype)init {
    self = [super init];
    if (!self)
        return nil;
    return self;
}

- (BOOL)refreshData {
    return YES;
} 

更新 2:我创建了一个空白的工作项目并将确切的文件复制粘贴到我的原始项目中(因为它是大型 iOS 应用程序的 iMessage 扩展)。事实证明,即使在我清理了项目并更改了 UITableView 委托(delegate)以提供不同的文本之后,Xcode 仍在运行应用程序的旧版本。 more



Best Answer-推荐答案


我过去为同一个项目创建了一个消息扩展,并删除了目标,同时将文件保留在项目中。当我将 Messages Extension 重新添加到项目中时,Xcode 继续运行旧版本的应用程序。 我通过以下方式解决了 Xcode 运行旧版本应用程序的问题:

  1. 全部清除
  2. 从项目中删除消息扩展目标
  3. 将现有的消息扩展代码备份到项目之外的目录。然后从项目中删除 Messages 应用组和目录。
  4. 从项目中删除 Messages Extension 构建方案。
  5. 删除项目派生数据目录。
  6. 重启 Xcode,在项目中新建 Messages Extension 目标,并导入保存的代码。

关于ios - 未调用 ObjC 类方法。 GDB玩游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39887080/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap