将NSMutablearray值加载到表视图中的问题?

时间:2011-02-25 07:57:13

标签: uitableview ios4 nsmutablearray

我是iphone开发的新手,我正在尝试将NSMutableArray值加载到表视图中,我正在使用下面的代码来生成指定的错误。有人可以帮我纠正这个错误。

代码: -

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return [ShowList count];
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell...
    NSString *cellValue = [ShowList objectAtIndex:indexPath.row];
    cell.textLabel.text = cellValue;   
    return cell;

}

错误: -

2011-02-25 07:22:24.470 iPhone[1032:207] -[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0xab15d30
2011-02-25 07:22:24.471 iPhone[1032:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0xab15d30'
*** Call stack at first throw:

我的NSMutableArray的打印描述: -

2011-02-25 07:21:54.806[1032:207] (
        (
        "viral_tweeter",
        default1571546,
        default1570056,
        twilightsaga,
        "wp-monetizer",
        viraltweetbuild,
        "building_a_list",
        yourtwittertips,
        "twitter_profit",
        mikesbi,
        mikesbizz,
        default1164341,
        incbizztest,
        default1164319,
        iprotv,
        iwantafreecopy1,
        tweeterbuilder,
        trafficlists,
        myadsensenews,
        mysafelistnews,
        myviralnews,
        safelistology,
        slmembers,
        slpmembers,
        twonderlandlist,
        noseospider,
        yseospider,
        digitallockdown,
        alistblueprint,
        classifiedtips,
        incbizzblog,
        "xit-trafficbeta",
        twwidget,
        jvtrafficfunnel,
        instantmlmspage,
        listbuldingmax,
        "incbizz_tips"
    )
)

用于解析HTTP Get响应的代码: -

- (void)requestDataFetcher:(GTMHTTPFetcher *)fetcher finishedWithData:(NSData *)data error:(NSError *)error {

    // this is only for testing whether the data is coming or not
    // NSDictionary *tempDict = [GTMOAuthAuthentication dictionaryWithResponseData:data];

    if (error) 
    {
        NSLog(@"Error: in getting data after authentication : %@",[error description]);
    } 

    else 
    {
        // NSLog(@"Succcess: in getting data after authentication \n data: %@",[tempDict description]);
        NSString* aStr;
        aStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
        NSDictionary *dictionary = [aStr JSONValue];
        NSArray *keys = [dictionary allKeys];
        Names = [[NSMutableArray alloc]init];
        int i = 0;
        // values in foreach loop
        for (NSString *key in keys) 
        {
            i++;
            NSArray *items = (NSArray *) [dictionary objectForKey:key];  
            // NSLog(@" test %@", items);
            if (i==3) 
            {
                for (NSString *item in items) 
                { 
                    NSString* aStrs=  item;
                    // NSLog(@" test %@", aStrs);

                    NSDictionary *dict = aStrs;
                    NSArray *k = [dict allKeys];
                    for (id *it in k) 
                    {  
                        // NSLog(@"the  child item: %@", [NSString stringWithFormat:@"Child Item -> %@ value %@", (NSDictionary *) it,[dict objectForKey:it]]);  
                        NSString *value = [it description]; 
                        if ( [value isEqualToString:@"name"]) 
                        {
                            NSString * value = (NSString*)[[dict objectForKey:it] description];
                            NSLog(value);
                            [Names addObject:value];
                            [[MySingletonClass sharedMySingleton] SetAweberList: value];
                        }
                    }
                }
            }
        }


        mShowList.hidden = FALSE;
    }

}

2 个答案:

答案 0 :(得分:3)

@Ravi你的数组是数组的数组,ShowList是一个数组,第一个对象是数组,那个数组就是那个

    "viral_tweeter",
    default1571546,
    default1570056,
    twilightsaga,
    "wp-monetizer",
    viraltweetbuild,
    "building_a_list",
    yourtwittertips,
    "twitter_profit",
    mikesbi,
    mikesbizz,
    default1164341,
    incbizztest,
    default1164319,
    iprotv,
    iwantafreecopy1,
    tweeterbuilder,
    trafficlists,
    myadsensenews,
    mysafelistnews,
    myviralnews,
    safelistology,
    slmembers,
    slpmembers,
    twonderlandlist,
    noseospider,
    yseospider,
    digitallockdown,
    alistblueprint,
    classifiedtips,
    incbizzblog,
    "xit-trafficbeta",
    twwidget,
    jvtrafficfunnel,
    instantmlmspage,
    listbuldingmax,
    "incbizz_tips"

所以你可以这样做。

NSString *cellValue = [[ShowList objectAtIndex:0] objectAtIndex:indexPath.row];

答案 1 :(得分:1)

由于某种原因,我假设UILabel的{​​{1}}调用setText,因此它会导致数组中第一个不是isEqualToString的对象崩溃。