我试图将解析数据添加到我的表数组中并且我得到'NSRangeException',原因:'*** - [__ NSArrayI objectAtIndex:]:索引1超出边界[0 .. 0]任何有关如何解决此问题的帮助将不胜感激。
PFQuery *query31 = [PFQuery queryWithClassName:@"Salesman"];
[query31 whereKey:@"SalesNo" equalTo:self.tbl22];
// query31.cachePolicy = kPFCachePolicyCacheThenNetwork;
[query31 getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (!object) {
NSLog(@"The getFirstObject request failed.");
} else {
self.salesman = [object objectForKey:@"Salesman"];
NSLog(@"salesStr is %@",self.salesman);
}
}];
tableData2 = [NSArray arrayWithObjects:t21, t22, t23, t24, t25, nil];
这是我得到崩溃t22 =自我推销员
if ([_formController isEqual: @"Leads"]) {
if ( ( ![t22 isEqual:[NSNull null]] ) && ( [self.tbl22 length] != 0 ) )
{t22 = self.salesman;
} else { t22 = @"None"; }
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if ([tableView isEqual:self.listTableView]) {
return [tableData count];
} else if ([tableView isEqual:self.listTableView2]) {
return [tableData count];
} else if ([tableView isEqual:self.newsTableView]) {
return 1;
}
return 0;
}
#pragma mark TableView Delegate Methods
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([tableView isEqual:self.listTableView]) {
static NSString *CellIdentifier = @"NewCell";
UITableViewCell *myCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (myCell == nil) {
myCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; }
//need to reload table (void)viewDidAppear to get fonts to change but its annoying
myCell.textLabel.text = [tableData4 objectAtIndex:indexPath.row];
myCell.textLabel.font = [UIFont systemFontOfSize:8.0];
[myCell.textLabel setTextColor:[UIColor darkGrayColor]];
myCell.detailTextLabel.text = [tableData objectAtIndex:indexPath.row];
myCell.detailTextLabel.font = [UIFont boldSystemFontOfSize:8.0];
[myCell.detailTextLabel setTextColor:[UIColor blackColor]];
return myCell;
}
else if ([tableView isEqual:self.listTableView2]) {
static NSString *CellIdentifier2 = @"NewCell2";
UITableViewCell *myCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (myCell == nil) {
myCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2]; }
//need to reload table (void)viewDidAppear to get fonts to change but its annoying
myCell.textLabel.text = [tableData3 objectAtIndex:indexPath.row];
myCell.textLabel.font = [UIFont systemFontOfSize:8.0];
[myCell.textLabel setTextColor:[UIColor darkGrayColor]];
myCell.detailTextLabel.text = [tableData2 objectAtIndex:indexPath.row];
myCell.detailTextLabel.font = [UIFont boldSystemFontOfSize:8.0];
[myCell.detailTextLabel setTextColor:[UIColor blackColor]];
//draw red vertical line
UIView *vertLine = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, myCell.frame.size.height)];
vertLine.backgroundColor = [UIColor redColor];
[myCell.contentView addSubview:vertLine];
return myCell;
}
else if ([tableView isEqual:self.newsTableView]) {
static NSString *CellIdentifier1 = @"detailCell";
CustomTableViewCell *myCell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1 forIndexPath:indexPath];
if (myCell == nil) {
myCell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1]; }
//need to reload table (void)viewDidAppear to get fonts to change but its annoying
myCell.separatorInset = UIEdgeInsetsMake(0.0f, myCell.frame.size.width, 0.0f, 400.0f);
myCell.leadtitleLabel.text = self.lnewsTitle;
myCell.leadtitleLabel.numberOfLines = 0;
myCell.leadtitleLabel.font = [UIFont systemFontOfSize:12.0];
[myCell.leadtitleLabel setTextColor:[UIColor darkGrayColor]];
myCell.leadsubtitleLabel.text = @"Yahoo Finance 2 hrs ago";
myCell.leadsubtitleLabel.font = [UIFont systemFontOfSize:8.0];
[myCell.leadsubtitleLabel setTextColor:[UIColor grayColor]];
myCell.leadreadmore.text = @"Read more";
myCell.leadreadmore.font = [UIFont systemFontOfSize:8.0];
myCell.leadnews.text = comments;
myCell.leadnews.numberOfLines = 0;
myCell.leadnews.font = [UIFont boldSystemFontOfSize:8.0];
[myCell.leadnews setTextColor:[UIColor darkGrayColor]];
return myCell;
}
当我运行log时,我得到一个结果Salesman名称
NSLog(@"salesStr is %@",self.salesman);
salesStr is Adam Monteleone
答案 0 :(得分:0)
这意味着您的数组为空,并且您尝试访问无法获取它的索引1。你最好调试自己。
如果你想对NSString
进行内省,你只需要使用length
方法进行检查。如果您的NSString为nil或为空,它将返回false
。