didSelectRowAt Index 冻结了 Apple Watch 应用

Posted

技术标签:

【中文标题】didSelectRowAt Index 冻结了 Apple Watch 应用【英文标题】:didSelectRowAtIndex freezes the Apple Watch app 【发布时间】:2016-03-27 15:30:04 【问题描述】:

在我的 WatchKit 应用程序中,我有一个表格视图,我试图通过在表格中按下两个不同的行(最后一行和之前的一行)来执行两种不同的方法。

下面的代码运行method1,但从不执行method2,即使tableView.numberOfRows 是正确的。应用程序没有执行 method2,而是无休止地加载并冻结。

代码可能有什么问题?

override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) 
    if table==tableView && rowIndex==tableView.numberOfRows-2 
        print("Its up")
        print(tableView.numberOfRows)
        method1()
     else if table==tableView && rowIndex==tableView.numberOfRows-1 
        print("It's down")
        print(tableView.numberOfRows)
        method2()
     else 
        print("Nothing is happening")
    

【问题讨论】:

它是否进入第二块并打印它已关闭.. 如果 ao 则显示方法 2 中发生的情况 我会附上调试器以查看或查看手机的设备窗口日志,听起来像是崩溃了。 @ArunGupta 问题是 - 它从不执行方法 2,它甚至在那之前就冻结了。用调试器检查。 您是否有任何理由检查 tableView 和 tableView.numberOfRows 的状态,可以很容易地被数据源或数组替换以进行显示。如果 list 是您的数组,您可以将 list.count -2 替换为第一个 if 和 list.count - 1 替换第二个条件。 【参考方案1】:
if table=tableView && rowIndex==tableView.numberOfRows-2 

也许第一个相等应该是==

【讨论】:

其实它已经是 ==,我拼错了代码。这不是问题。 发布方法 1 和 numofrows 方法 让我们假设method1只是打印出一个字符串-numberOfRows表示tableView中的行数,它本身不是一个方法

以上是关于didSelectRowAt Index 冻结了 Apple Watch 应用的主要内容,如果未能解决你的问题,请参考以下文章

didSelectRowAt 索引问题

TableView _:didSelectRowAt: 仅在滑动触摸时触发

Pickerview 选择行和 didSelectRowAt 函数

Xcode 8 / Swift 3:didSelectRowAt 与 didSelectRowAtIndexPath

未调用 UiTableView didSelectRowAt 方法

UITableview 函数“DidselectRowAt”显示到不同的目标视图控制器