gpt4 book ai didi

objective-c - 使用包含 NSDictionary 的 NSMutableArray 进行快速枚举

转载 作者:太空狗 更新时间:2023-10-30 03:48:48 26 4
gpt4 key购买 nike

是否可以对包含 NSDictionary 的 NSArray 使用快速枚举?

我正在浏览一些 Objective C 教程,下面的代码将控制台踢入 GDB 模式

NSMutableArray *myObjects = [NSMutableArray array];
NSArray *theObjects = [NSArray arrayWithObjects:@"easy as 1",@"easy as two", @"Easy as Three"];
NSArray *theKeys = [NSArray arrayWithObjects:@"A",@"B",@"C"];
NSDictionary *theDict = [NSDictionary dictionaryWithObjects:theObjects forKeys:theKeys];
[myObjects addObject:theDict];

for(id item in myObjects)
{
NSLog(@"Found an Item: %@",item);
}

如果我用传统的计数循环替换快速枚举循环

int count = [myObjects count];
for(int i=0;i<count;i++)
{
id item;
item = [myObjects objectAtIndex:i];
NSLog(@"Found an Item: %@",item);
}

应用程序运行没有崩溃,字典输出到控制台窗口。

这是快速枚举的限制,还是我遗漏了一些微妙的语言?像这样嵌套集合时还有其他陷阱吗?

为了加分,我怎么能用GDB自己调试呢?

最佳答案

糟糕! arrayWithObjects: 需要以 nil 结尾。下面的代码运行得很好:

NSMutableArray *myObjects = [NSMutableArray array];
NSArray *theObjects = [NSArray arrayWithObjects:@"easy as 1",@"easy as two", @"Easy as Three",nil];
NSArray *theKeys = [NSArray arrayWithObjects:@"A",@"B",@"C",nil];
NSDictionary *theDict = [NSDictionary dictionaryWithObjects:theObjects forKeys:theKeys];
[myObjects addObject:theDict];

for(id item in myObjects)
{
NSLog(@"Found an Item: %@",item);
}

我不确定为什么使用传统循环会隐藏此错误。

关于objective-c - 使用包含 NSDictionary 的 NSMutableArray 进行快速枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300256/

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