Objective c 目标-C为什么不';我的数组不能工作吗?
这可能是一个完全愚蠢的问题,但我对objective-C和编程基本上还是相当陌生的。 我正在尝试创建一个数组,但无法使其正常工作:Objective c 目标-C为什么不';我的数组不能工作吗?,objective-c,cocoa,multidimensional-array,Objective C,Cocoa,Multidimensional Array,这可能是一个完全愚蠢的问题,但我对objective-C和编程基本上还是相当陌生的。 我正在尝试创建一个数组,但无法使其正常工作: @interface ArraysAndDicts : NSObject { NSMutableArray * mySimpleArray; NSMutableArray * myComplicatedArray; } 实施: -(void)generateValueForArrayOfArrays { [self generateValueForA
@interface ArraysAndDicts : NSObject {
NSMutableArray * mySimpleArray;
NSMutableArray * myComplicatedArray;
}
实施:
-(void)generateValueForArrayOfArrays {
[self generateValueForArray];
//this generates an array with 5 elements 'mySimpleArray'
[myComplicatedArray addObject:mySimpleArray];
NSMutableArray * mySecondaryArray = [[NSMutableArray alloc] init];
[mySecondaryArray addObject:@"twoone"];
[mySecondaryArray addObject:@"twotwo"];
[myComplicatedArray addObject:mySecondaryArray];
(为了清晰起见,我删掉了所有NSLog)
运行我的应用程序时,控制台会告诉我:
mySecondaryArray计数=2
mySimpleArray计数=5
myComplicatedArraycount=0
所以我知道还有其他方法可以制作多维数组,
但我真的很想知道为什么这不起作用。
谢谢。看起来您永远不会创建
myComplementArray
。这意味着
[myComplicatedArray addObject:mySimpleArray];
实际上是
[nil addObject:mySimpleArray];
在Objective-C中,向nil发送消息根本没有效果,因此不会发生任何事情。当您请求数组计数时,实际上是在发送[nil count]
,在您的情况下,它将返回0。你可以在这里找到
还有,当你在做
NSMutableArray * mySecondaryArray = [[NSMutableArray alloc] init];
[mySecondaryArray addObject:@"twoone"];
[mySecondaryArray addObject:@"twotwo"];
mySecondaryArray
将泄漏。您应该使用autorelease
NSMutableArray * mySecondaryArray = [[[NSMutableArray alloc] init] autorelease];
...
或发布
,以适当的为准
NSMutableArray * mySecondaryArray = [[NSMutableArray alloc] init];
...
[mySecondaryArray release];
我们看不到MyComplicateArray是如何初始化的。可能是
nil
您在什么地方初始化了myComplementArray
myComplicatedArray = [[NSMutableArray alloc] init];
[self generateValueForArray];
// etc...
哦,真的。我忘了初始化它><我知道这是个愚蠢的问题;)非常感谢你的帮助。:)