枚举包含字典的数组会产生意外的输出

3 enumeration objective-c nsdictionary nsarray

我的问题是为什么它输出日志中的最后4行(见下文)......这些对象是日志中早先打印的字典的一部分,不应该位于数组的末尾?我在这里缺少一些基本的东西...... thx

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSURL URLWithString: @"www.stanford.edu"], 
    @"Stanford University", 
    [NSURL URLWithString: @"www.apple.com"], 
    @"Apple shop", 
    [NSURL URLWithString: @"cs193p.stanford.edu"], 
    @"CS193P course", 
    [NSURL URLWithString: @"itunes.stanford.edu"], 
    @"Stanford on iTunes U", 
    [NSURL URLWithString: @"stanfordshop.com"], 
    @"Stanford Mall", 
    nil];

NSMutableArray *myArray = [NSMutableArray arrayWithObjects:
    [NSString init],
    [NSURL URLWithString: @"www.stanford.edu"],
    [NSProcessInfo processInfo],
    dictionary,
    [@"Mutable string example" mutableCopy],
    [@"another mutable string" mutableCopy]];

NSEnumerator *enumerator = [myArray objectEnumerator];
id object;

while ((object = [enumerator nextObject])) {
    NSLog([object description]);
}
Run Code Online (Sandbox Code Playgroud)

2009-07-02 09:35:12.756 WhatATool [6407:10b] NSString
2009-07-02 09:35:12.756 WhatATool [6407:10b] www.stanford.edu
2009-07-02 09:35:12.757 WhatATool [ 6407:10b] <NSProcessInfo: 0x107e20>
2009-07-02 09:35:12.758 WhatATool [6407:10b] {
"Apple shop"= www.apple.com;
"CS193P课程"= cs193p.stanford.edu;
"斯坦福购物中心"= stanfordshop.com;
"斯坦福大学"= www.stanford.edu;
"斯坦福在iTunes U上"= itunes.stanford.edu;
}
2009-07-02 09:35:12.758 WhatATool [6407:图10b]可变的字符串例子
2009-07-02 09:35:12.759 WhatATool [6407:图10b]另一个可变的字符串
2009-07-02 09:35:12.760 WhatATool [6407:10b] itunes.stanford.edu
2009-07-02 09:35:12.760 WhatATool [6407:10b]斯坦福在iTunes U上
2009-07-02 09:35:12.761 WhatATool [6407:10b] stanfordshop.com
2009 -07-02 09:35:12.762 WhatATool [6407:10b]斯坦福购物中心

Jef*_*man 24

当你使用方法创建NSMutableArray时,我认为你缺少必要的nil作为最后一个参数.是否

NSMutableArray *myArray = [NSMutableArray arrayWithObjects:
    [NSString init],
    [NSURL URLWithString: @"www.stanford.edu"],
    [NSProcessInfo processInfo],
    dictionary,
    [@"Mutable string example" mutableCopy],
    [@"another mutable string" mutableCopy],
    nil];
Run Code Online (Sandbox Code Playgroud)

工作?