我是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
答案 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