NSArray太长了?

时间:2014-02-22 15:29:35

标签: ios iphone objective-c arrays uitableview

我不确定是什么导致了这个问题,但我的理论是Xcode处理数组的时间太长而且tableview在它甚至设法处理所有字符串之前调用数组。因为,当我删除一半的字符串时,它将工作,我将不会收到任何错误消息。有什么方法可以解决这个问题吗?

Datarray2 = [[NSArray alloc]initWithObjects:@"United States Dollar",@"Euro",@"Japanese yen",@"Bulgarian lev",@"Czech koruna",@"Danish krone",@"British pound",@"Hungarian forint"@"Lithuanian litas",@"Polish złoty",@"Romanian leu",@"Swedish krona",@"Swiss franc",@"Norwegian krone",@"Croatian kuna",@"Russian ruble",@"Turkish lira",@"Australian dollar",@"Brazilian real",@"Canadian dollar","Chinese yuan",@"Hong Kong dollar",@"Indonesian rupiah",@"Israeli new shekel",@"Indian rupee",@"South Korean won",@"Mexican peso",@"Malaysian ringgit",@"New Zealand dollar",@"Philippine peso",@"Singapore dollar",@"Thai baht",@"South African rand", nil];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    cell.textLabel.text = [Datarray2 objectAtIndex:indexPath.row];
    return cell;
}

2 个答案:

答案 0 :(得分:6)

您错过了其中一个字符串中的@符号。

Datarray2 = [[NSArray alloc]initWithObjects:@"United States Dollar",@"Euro",@"Japanese yen",@"Bulgarian lev",@"Czech koruna",@"Danish krone",@"British pound",@"Hungarian forint"@"Lithuanian litas",@"Polish złoty",@"Romanian leu",@"Swedish krona",@"Swiss franc",@"Norwegian krone",@"Croatian kuna",@"Russian ruble",@"Turkish lira",@"Australian dollar",@"Brazilian real",@"Canadian dollar",@"Chinese yuan",@"Hong Kong dollar",@"Indonesian rupiah",@"Israeli new shekel",@"Indian rupee",@"South Korean won",@"Mexican peso",@"Malaysian ringgit",@"New Zealand dollar",@"Philippine peso",@"Singapore dollar",@"Thai baht",@"South African rand", nil];

修改

请注意!尝试使用新的ObjC文字。如果你这样做,它将给你一个编译时错误:

id array = @["Chinese"];

答案 1 :(得分:3)

@“加元”,“人民币”请改@“中国元”