Xcode编译错误“读取在NSArray类型的对象上找不到的数组元素的预期方法”

时间:2013-09-14 08:25:41

标签: ios objective-c uitableview nsarray

我是xcode的新手,我尝试使用UITableView来显示数组中的内容。

我尝试在Feed中添加一些数组,并尝试在表格中显示它们。

但是在这种情况下暗示错误

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

on cell.textLabel.text = self.imageTitleArray [indexPath.row];

它表示读取在NSArray类型的对象上找不到的数组元素的预期方法

我很困惑,为什么它不会读数组,队长明显请帮助

这是我的H档

#import <UIKit/UIKit.h>

@interface FeedTableViewController : UITableViewController
@property (strong, nonatomic) NSArray *imageTitleArray;
@end

这是我的M档

#import "FeedTableViewController.h"

@interface FeedTableViewController ()

@end

@implementation FeedTableViewController



- (id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {
    self.title = @"Feed";
    self.imageTitleArray = @[@"Image 1",@"Image 2",@"Image 3", @"Image 4",@"Image 5"];
}
return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];


}

- (void)viewDidUnload
{
    [super viewDidUnload];
    }

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

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

  return self.imageTitleArray.count;

}

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

    if(cell==nil){
        cell= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
  cell.textLabel.text = self.imageTitleArray[indexPath.row];    
    return cell;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}

@end

2 个答案:

答案 0 :(得分:1)

cell.textLabel.text = self.imageTitleArray[indexPath.row];

这是问题 - 它应该是

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

答案 1 :(得分:0)

暂时尝试这样做,这将在短期内解决您的问题:

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

The updated syntax that you're trying to use (which is correct) came in with Xcode 4.5