【问题标题】:Xcode instance method is not being called from another class没有从另一个类调用 Xcode 实例方法
【发布时间】:2012-05-02 09:47:46
【问题描述】:

这次真的不知道去哪里找这个问题了。

我有一个带有嵌入式 UITableView 的 UIViewController。 我已将 UITableViewDelegate、UITableViewDataSource 添加到我的头文件中。 在实现文件中,我导入了另一个用于读取/写入数据库的类的头文件。

在我的实现文件的“numberOfRowsInSection”部分有这样的代码:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
DbOperations *medi = [[DbOperations alloc] init];
self.orari = [medi ProssimeMedicineGrouped];

return [self.orari count];
}

我在此方法的开头添加了一个断点,然后我发现根本没有调用“ProssimeMedicineGrouped”方法。

昨天它工作没有问题。我所做的唯一更改是将 ViewController 从仅包含表格的 UITableViewController 更改为嵌入了 tableView 的 UIViewController。

【问题讨论】:

    标签: ios xcode uitableview


    【解决方案1】:

    您是否将tableView 的delegate 属性设置为self?还有一件事,我认为在此方法中创建 DbOperations 对象不是一个好习惯,因为当 tableView 需要有关数据源的更多信息时会调用它,并且这种情况可能不止一次发生。

    【讨论】:

    • 在“viewDidLoad”部分我有 [tableName setDelegate:self]。但它仍然无法正常工作。我不知道我所做的是一个不好的做法,我会改变它。我注意到另一件事:在“viewDidLoad”中,我正在调用同一个 DbOperations 类的另一个方法,这也被跳过了。
    • 是否调用了 numberOfRowsInSection: 方法?如果不是,请确保 numberOfSectionsInTableView: 返回 >0
    • 是的,调用了“numberOfRowsInSection”方法,但由于它没有调用其他DbOperations方法,所以返回0。
    • 您能否显示 orari 属性的声明,并确保 ProssimeMedicineGrouped 方法是否确实返回了某些内容。你在使用 ARC 吗?
    • 好的,我想我明白了。这完全是我的错,我现在觉得自己很愚蠢。我忘记了我已经重置了模拟器,所以 Xcode 创建了另一个空文档文件夹,然后将我的空数据库从包复制到文档文件夹。我没有注意到,因为我在 sqlite3_step 之后设置了断点,所以这就是程序从未到达它的原因。很抱歉我让你浪费了时间。
    猜你喜欢
    • 2015-06-10
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多