可以将.xib链接到类中编写的类吗?

时间:2014-05-26 01:04:52

标签: ios objective-c uitableview

我喜欢保持我的代码干净,我现在有多个为自定义单元格编写的类。大多数这些单元格仅在1 UITableView中使用。

所以我们假设我们有类CustomUITableViewControllerCustomUITableViewCell。我正在寻找的是CustomUITableViewController中的这些内容。

@interface CustomUITableViewController()
//stuff
@end

@interface CustomUITableViewCell : UITableViewCell
//stuff
@end

@implementation CustomUITableViewCell
//stuff
@end

@implemention CustomUITableViewController
    -(UITableViewCell*)cellForRowAtIndexPath... {
        CustomUITableViewCell *cell = dequeueCellFor...
        return cell;
    }
    -(void)viewDidLoad {
        [super viewDidLoad]

        //this next line should be right?????
        [self.tableView registerNib:nib forCellReuseIdentifier:@"CustomCell"];
    }
@end
  1. 我的viewDidLoad方法是否正确?如果我将UITableViewCell写在一个单独的文件中,我应该像我一样写它?

  2. 我在.xib文件中放了什么?当我尝试将类更改为自定义类时,它不会与CustomUITableViewCell链接,当然它与CustomUITableViewController不匹配(尽管我还是试过了。)

1 个答案:

答案 0 :(得分:0)

  1. 你的意思是'没有链接CustomUITableViewCell'?只要您的nib对象是您的自定义单元格的nib,并且在该单元格的xib中,根对象是一个UITableViewCell,其自定义类属性设置为您的CustomUITableViewCell类型,您应该很高兴。我自己也使用过这种方法,虽然我发现在单元格中放置逻辑比它的价值更痛苦。

  2. 在旁注中,您应该be sure to use a three letter prefix with all your classes to avoid collisions with Apple private classes

    “不符合KVC”错误通常是由这种情况中的两件事之一引起的:

    1)您修改了XIB,但Xcode没有注意到更改,因此没有部署修改后的文件。当您更改XIB中的单元标识符时,通常会发生这种情况。从模拟器/设备中删除您的应用程序,然后再次尝试运行。

    2)你曾经在IB的自定义类中声明了属性(或者可能是视图层次结构中不相关的其他东西),但是你已经改变了IB背后的类,它没有不知道它不应该再试图建立这些联系。右键单击场景中的每个视图以查找任何断开的连接并将其删除。如果我更正了属性的拼写或以任何方式更改它并且不在IB中删除并重新添加连接,则会发生这种情况。 95%的情况下,当我看到错误时,这就是问题。