gpt4 book ai didi

cocoa-touch - 无法记录 NSMutableDictionary 的描述

转载 作者:行者123 更新时间:2023-12-03 17:23:38 24 4
gpt4 key购买 nike

我有一个 NSMutableDictionary,其中包含一到四个对象。每个包含的对象都是一个 NSDictionary。第一个字典包含大约 83,000 个对 NSManagedObjects 的引用。第二个字典包含大约 14,000 个相同类型的对象。

在下面的代码中,NSLog 语句中没有任何反应。就好像跳过了一样,程序继续运行。然而,不久之后我在使用这些词典时遇到了其他问题。我认为首先解决这个问题可能会有助于解决其他问题。

pos = @"v";
NSLog(@"%@", pos);
[request setEntity:[NSEntityDescription entityForName:@"SYNSET" inManagedObjectContext:[ManagedObjectContext moc]]];
predicate = [NSPredicate predicateWithFormat:@"partOfSpeech = %@", pos];
[request setPredicate:predicate];
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"synsetOffset" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
synsetsArrayForPos = [[ManagedObjectContext moc] executeFetchRequest:request error:&error];
synsetDictionaryMutableForPos = [[NSMutableDictionary alloc] initWithCapacity:100000];
for (SYNSET *synset in synsetsArrayForPos)
[synsetDictionaryMutableForPos setObject:synset forKey:[NSString stringWithFormat:@"%@",synset.synsetOffset]];
[dictionaryMutableOfSynsetDictionaries setObject:[NSDictionary dictionaryWithDictionary:synsetDictionaryMutableForPos] forKey:pos];

NSLog(@"dictionaryMutableOfSynsetDictionaries is class of %@ with description %@", [dictionaryMutableOfSynsetDictionaries class], [dictionaryMutableOfSynsetDictionaries description]);

pos = @"a";
NSLog(@"%@", pos);

我使用不同的 pos 值重复此代码四次,每次打印顶级 dictionaryMutableOfSynsetDictionaries 字典描述的 NSLog 都无法打印。如果我用字符串常量替换“[dictionaryMutableOfSynsetDictionaries description]”,它就会打印出来。

这里发生了什么?这是预期的行为还是我做错了什么?

(此代码与大型字典一起用于完成大型sqlite数据库的关系链接,并且不会在可部署代码中使用。我仅在iOS模拟器上运行它。我会更新完成后,将更新的数据库放入我的应用程序包中。)

最佳答案

现在我明白了可能发生的情况,但它并没有完全回答为什么它没有打印到控制台。

NSDictionary 的描述方法返回一个表示字典内容的字符串,格式为属性列表。对于这么大的字典,它会记录全部内容,大约有10万条记录。

当我执行 po [[dictionaryMutableOfSynsetDictionaries description] substringToIndex:1000] 时,它将显示前 1000 个字符。如果我不以这种方式缩短它,则需要一段时间才能组成字符串,然后需要很长时间才能呈现到控制台。

我确实确认,在问题行之前和之后的日志语句中,我的问题中的日志语句没有打印,而之前和之后的日志都被打印。所以我认为 NSLog 正在抛弃它。

关于cocoa-touch - 无法记录 NSMutableDictionary 的描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com