Проблема в загрузке значения NSMutablearray в табличное представление? - PullRequest
4 голосов
/ 25 февраля 2011

Я новичок в разработке для 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:

Распечатать описание My 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 Получить ответ: -

- (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 ]

3 голосов
/ 25 февраля 2011

@ 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 голос
/ 25 февраля 2011

Я предполагаю, что UILabel setText вызывает isEqualToString по какой-то причине, поэтому происходит сбой самого первого объекта в вашем массиве, который не является NSString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...