0

我正在构建所有数据,使其看起来像来自服务器的响应数据字典。现在,应该为BollyGlobal使用 Dictionary 的newsFeedsDict1不仅显示 Global 字典中的所有数据。当我的 for 循环运行时,它显示了Bolly的正确数据。但这是第二次在全球词典中显示Bolly 的数据。

if(internetStatus == NotReachable) {

    NSMutableArray *titleArr = [[NSMutableArray alloc] init];
    NSMutableArray *wholeFeeds = [[[NSMutableArray alloc] init] autorelease];

    [titleArr addObject:@"Bolly"];
    [titleArr addObject:@"Global"];

    for (NSString *title in titleArr) {



    //titleArr = [[NSUserDefaults standardUserDefaults] objectForKey:@"TitleArray"];

    NSLog(@"TITle arr %@",titleArr);

    NSLog(@"No internet");
    OrderedDictionary *newsFeedsDict1 = [[[OrderedDictionary alloc] init] autorelease];

    NSMutableDictionary *newsFeedsDict = [[[NSMutableDictionary alloc] init] autorelease];

    NSMutableArray *myLocalArray= [[[NSMutableArray alloc] init] autorelease];

    myLocalArray = [[Database sharedDatabase] getArticleData:title];

    NSMutableDictionary *articleDict = [[[NSMutableDictionary alloc] init] autorelease];

    [articleDict setObject:myLocalArray forKey:@"article"];

    [newsFeedsDict setObject:articleDict forKey:@"Articles"];
        [newsFeedsDict setObject:title forKey:@"@name"];

    [newsFeedsDict1 setObject:newsFeedsDict forKey:title];

        [wholeFeeds addObject:newsFeedsDict1];

    NSLog(@"news feed dict %@",newsFeedsDict1);

    NSMutableDictionary *temparticleDictionary = [[NSMutableDictionary alloc] init];
   self.articleDictionary = temparticleDictionary;


    self.categoriesDictionary = [[NSMutableDictionary alloc] init];
                    self.categoriesDictionary =newsFeedsDict1;


            [self createArticleDictionaryForCategory:newsFeedsDict];


        }


}
4

2 回答 2

1

你能写出* getArticleData () * 方法的代码片段吗

于 2013-07-26T11:50:37.370 回答
1

很难判断您的代码应该做什么,以及如何判断一个字典与另一个字典具有相同的内容。几个问题:

NSMutableArray *myLocalArray= [[[NSMutableArray alloc] init] autorelease];
myLocalArray = [[Database sharedDatabase] getArticleData:title];

第一行完全没有必要。您正在创建一个新数组,将其分配给myLocalArray,然后将其他内容分配给myLocalArray。您稍后对self.categoriesDictionary. 这使我相信您对对象指针有一些误解。

因此,您从共享数据库中获取的数组最终位于myLocalArray,然后将该数组添加到字典中articleDict,然后添加articleDict到,然后将其newsFeedDict添加到newsFeedDict1。然后你登录newsFeedDict1。您对标题@"Bolly"和都执行相同的操作@"Global",因此在两种情况下看到相同的输出也就不足为奇了。

我很难理解为什么您期望输出会有所不同,我不得不再次猜测这是由于误解了将一个对象指针分配给另一个对象指针时会发生什么。或者,也许您期望从中获得的数组[[Database sharedDatabase] getArticleData:title];有所不同,因为您传递了不同的标题。也许你真的应该在那里得到不同的数组;看看该-getArticleData:方法中发生了什么以及它是否真的为您提供了每个标题的正确结果是一个好主意。

如果这没有帮助,请花一些时间清理您的代码,以便我们更容易,更重要的是,让您真正了解发生了什么。另外,请编辑您的问题,以更好地描述您所看到的内容以及与您期望看到的内容有何不同。

于 2013-07-25T16:21:43.607 回答