Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 遍历数组时崩溃_Objective C_Arrays - Fatal编程技术网

Objective c 遍历数组时崩溃

Objective c 遍历数组时崩溃,objective-c,arrays,Objective C,Arrays,我试图简单地打印出数组的内容 //initialization, ... NSArray *stockprices = [NSArray arrayWithObjects:@[stock1,stock2,stock3], nil]; for (BNRStockHolding *stock in stockprices) { // says that there are 3 objects in stock and crashes. //

我试图简单地打印出数组的内容

//initialization, ...

    NSArray *stockprices = [NSArray arrayWithObjects:@[stock1,stock2,stock3], nil];

    for (BNRStockHolding *stock in stockprices) {
//            says that there are 3 objects in stock and crashes.
//            tried to check -> isMemberOfClass:BNRStockHolding in an if before and got 'unexpected interface name'.
        NSLog(@"Purchase Price: %.02f \n Shares: %d \n Current Price: %.02f \n \n \n \n", [stock purchasePrice], [stock numberOfShares],[stock currentSharePrice]);
当您这样做时:

NSArray *stockprices = [NSArray arrayWithObjects:@[stock1, stock2, stock3], nil];
//is same as
NSArray *stockprices = [NSArray arrayWithObjects:[NSArray arrayWithObjects:stock1, stock2, stock3, nil], nil];
//or
NSArray *stockprices = [NSArray arrayWithObjects:[[NSArray alloc] initWithObjects:stock1, stock2, stock3, nil], nil];
因此,您基本上创建了一个数组,其第0个元素是数组,因为
@[stock1,stock2,stock3]
本身创建了一个数组


相反,你应该:

NSArray *stockprices = [NSArray arrayWithObjects:stock1, stock2, stock3, nil];

当您这样做时:

NSArray *stockprices = [NSArray arrayWithObjects:@[stock1, stock2, stock3], nil];
//is same as
NSArray *stockprices = [NSArray arrayWithObjects:[NSArray arrayWithObjects:stock1, stock2, stock3, nil], nil];
//or
NSArray *stockprices = [NSArray arrayWithObjects:[[NSArray alloc] initWithObjects:stock1, stock2, stock3, nil], nil];
因此,您基本上创建了一个数组,其第0个元素是数组,因为
@[stock1,stock2,stock3]
本身创建了一个数组


相反,你应该:

NSArray *stockprices = [NSArray arrayWithObjects:stock1, stock2, stock3, nil];

当您这样做时:

NSArray *stockprices = [NSArray arrayWithObjects:@[stock1, stock2, stock3], nil];
//is same as
NSArray *stockprices = [NSArray arrayWithObjects:[NSArray arrayWithObjects:stock1, stock2, stock3, nil], nil];
//or
NSArray *stockprices = [NSArray arrayWithObjects:[[NSArray alloc] initWithObjects:stock1, stock2, stock3, nil], nil];
因此,您基本上创建了一个数组,其第0个元素是数组,因为
@[stock1,stock2,stock3]
本身创建了一个数组


相反,你应该:

NSArray *stockprices = [NSArray arrayWithObjects:stock1, stock2, stock3, nil];

当您这样做时:

NSArray *stockprices = [NSArray arrayWithObjects:@[stock1, stock2, stock3], nil];
//is same as
NSArray *stockprices = [NSArray arrayWithObjects:[NSArray arrayWithObjects:stock1, stock2, stock3, nil], nil];
//or
NSArray *stockprices = [NSArray arrayWithObjects:[[NSArray alloc] initWithObjects:stock1, stock2, stock3, nil], nil];
因此,您基本上创建了一个数组,其第0个元素是数组,因为
@[stock1,stock2,stock3]
本身创建了一个数组


相反,你应该:

NSArray *stockprices = [NSArray arrayWithObjects:stock1, stock2, stock3, nil];


您正在使用代码在此处创建一个数组数组:

 NSArray *stockprices = [NSArray arrayWithObjects:@[stock1,stock2,stock3], nil];
你可以简单地写:

NSArray *stockprices = @[stock1,stock2,stock3];

您正在使用代码在此处创建一个数组数组:

 NSArray *stockprices = [NSArray arrayWithObjects:@[stock1,stock2,stock3], nil];
你可以简单地写:

NSArray *stockprices = @[stock1,stock2,stock3];

您正在使用代码在此处创建一个数组数组:

 NSArray *stockprices = [NSArray arrayWithObjects:@[stock1,stock2,stock3], nil];
你可以简单地写:

NSArray *stockprices = @[stock1,stock2,stock3];

您正在使用代码在此处创建一个数组数组:

 NSArray *stockprices = [NSArray arrayWithObjects:@[stock1,stock2,stock3], nil];
你可以简单地写:

NSArray *stockprices = @[stock1,stock2,stock3];

您正在数组中使用数组;父数组有一个对象,子数组有三个库存对象。如果您将获得[parentArray objectAtIndex:0];它会正常工作;但是如果您要执行[parentArray objectAtIndex:1];应用程序将崩溃,因为父数组只有一个对象。
它可以帮助您调查问题。

您正在数组中使用数组;父数组有一个对象,子数组有三个库存对象。如果您将获得[parentArray objectAtIndex:0];它会正常工作;但是如果您要执行[parentArray objectAtIndex:1];应用程序将崩溃,因为父数组只有一个对象。
它可以帮助您调查问题。

您正在数组中使用数组;父数组有一个对象,子数组有三个库存对象。如果您将获得[parentArray objectAtIndex:0];它会正常工作;但是如果您要执行[parentArray objectAtIndex:1];应用程序将崩溃,因为父数组只有一个对象。
它可以帮助您调查问题。

您正在数组中使用数组;父数组有一个对象,子数组有三个库存对象。如果您将获得[parentArray objectAtIndex:0];它会正常工作;但是如果您要执行[parentArray objectAtIndex:1];应用程序将崩溃,因为父数组只有一个对象。
这可能有助于您调查问题。

也许可以解释差异?这比仅仅说“用这个代码替换你的代码”更有用。@[stock1,stock2,stock3]已经创建了一个数组。他写道,这与[NSArray arrayWithObjects:stock1、stock2、stock3、nil]相同@[]是NSArray的新Objective-C文字。也许可以解释一下区别?这比仅仅说“用这个代码替换你的代码”更有用。@[stock1,stock2,stock3]已经创建了一个数组。他写道,这与[NSArray arrayWithObjects:stock1、stock2、stock3、nil]相同@[]是NSArray的新Objective-C文字。也许可以解释一下区别?这比仅仅说“用这个代码替换你的代码”更有用。@[stock1,stock2,stock3]已经创建了一个数组。他写道,这与[NSArray arrayWithObjects:stock1、stock2、stock3、nil]相同@[]是NSArray的新Objective-C文字。也许可以解释一下区别?这比仅仅说“用这个代码替换你的代码”更有用。@[stock1,stock2,stock3]已经创建了一个数组。他写道,这与[NSArray arrayWithObjects:stock1、stock2、stock3、nil]相同@[]是NSArray的新Objective-C文字。您正在使用
NSArray
创建一个
NSArray
,而不是“股票价格”,请参见下文@mixel的解决方案您正在使用
NSArray
创建一个
NSArray
,而不是“股票价格”,请参见下文@mixel的解决方案您正在使用
NSArray
创建一个
NSArray
,非“股票价格”见下文@mixel的解决方案您正在使用
NSArray
创建
NSArray
,非“股票价格”见下文@mixel的解决方案