如何用不同的NSObject制作TableView?

时间:2016-10-21 10:36:04

标签: ios objective-c arrays uitableview nsobject

也许有人可以帮助我。我有不同的类对象。它们将在TableView.m文件中创建,其中数组作为这些对象的属性。如何从这些对象中填充TableView,以便每个单元格都包含在对象上?当我将对象添加到数组时,我遇到错误,当我运行模拟器时。

错误: App1 [6354:7304461] - [Object1 isEqualToString:]:无法识别的选择器发送到实例0x600000455c00

我认为TableView不知道如何创建单元格。但是,我没有足够的经验知道真正发生的事情。

由于

- (void)viewDidLoad {
    [super viewDidLoad];


//creating first Object of NSObject Class Object1
    Object1 *object1Class = [[WLAN alloc]init];

    object1Class.object1PicsCreated = [[NSMutableArray alloc] init];
    object1Class.object1TextsCreated = [[NSMutableArray alloc] init];

    [object1Class.object1PicsCreated addObject:object1Class.picsObject1];
    [object1Class.object1TextsCreated addObject:object1Class.textsObject1];


    //creating second Object of NSObject Class Object2
    Object1 *object1Class = [[WLAN alloc]init];

    object2Class.object2PicsCreated = [[NSMutableArray alloc] init];
    object2Class.object2TextsCreated = [[NSMutableArray alloc] init];

    [object1Class.object2PicsCreated addObject:object2Class.picsObject2];
    [object1Class.object2TextsCreated addObject:object2Class.textsObject2];

if (!_objects){
            _objects = [[NSMutableArray alloc] init];

        }

[_objects addObject:object1Class]
[_objects addObject:object2Class]


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return _objects.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];



    cell.textLabel.text  = [_objects objectAtIndex:indexPath.row];


    return cell;
}

2 个答案:

答案 0 :(得分:0)

    static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

cell.textLabel.text = [NSString stringWithFormat:@"%@",[_objects objectAtIndex:indexPath.row]];

答案 1 :(得分:0)

Xcode崩溃是因为您将Object1的实例传递给期望NSString的setter。 UITableView认为该对象为NSString,因此请调用NSString的方法(因为它为-isEqualToString:),这是崩溃的原因。

无论你想要展示什么,都需要在你传递之前转换为NSString

  

如何从这些对象中填充TableView,以便每个单元格都包含在对象上?

这是一个非常奇怪的问题。 UITableView的行是UITableViewCell - s。您可能无法使用其他任何内容填充表格。

也许,您应该更详细地描述您的任务。