开发者

Calling array objects in object-c iphone app

I'm attempting to create an array from parsed JSON. I know that the JSON is parsing correctly because I tested it by outputting the values into the console. I then changed the code to:

// Start parsing the json
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSError *jsonError;
parsedJson = [[parser objectWithString:myRawJson error:&jsonError] copy];

[parser release];

NSDictionary *price = [parsedJson objectForKey:@"prices"];
NSEnumerator *enumerator = [price objectEnumerator];
NSDictionary* item;

while (item = (NSDictionary*)[enumerator nextObject]) {
    NSArray *price_chunk = [[NSArray alloc] arrayWithObjects:[item objectForKey:@"id"],[item objectForKey:@"table"],[item objectForKey:@"table_id"],[item objectForKey:@"value"],nil];
    NSLog(@"Prices ID: %@", [price_chunk objectAtIndex:0]);
    NSLog(@"Prices Table: %@", [price_chunk objectAtIndex:1]);
    NSLog(@"Prices Table ID: %@", [price_chunk objectAtIndex:2]);
    NSLog(@"Prices Value: %@", [price_chunk objectAtIndex:3]);
}

So I'm trying to make the array, and then test the array by outputting the data into the console. The app crashes, and I receive:

2011-09-21 11:36:56.397 vegas_hipster[23496:207] -[__NSPlaceholderArray arrayWithObjects:]: unrecognized selector sent to instance 0x631b820

2011-09-21 11:36:56.399 vegas_hipster[23496:207] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSPlaceholderArray arrayWithObjects:]: unrecogn开发者_如何学编程ized selector sent to instance 0x631b820'

* Call stack at first throw:

(

0   CoreFoundation                      0x01624be9 __exceptionPreprocess + 185
1   libobjc.A.dylib                     0x017795c2 objc_exception_throw + 47
2   CoreFoundation                      0x016266fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3   CoreFoundation                      0x01596366 ___forwarding___ + 966
4   CoreFoundation                      0x01595f22 _CF_forwarding_prep_0 + 50
5   vegas_hipster                       0x0006ec88 -[UpdateViewController update:] + 1433
6   UIKit                               0x003bfa6e -[UIApplication sendAction:to:from:forEvent:] + 119
7   UIKit                               0x0044e1b5 -[UIControl sendAction:to:forEvent:] + 67
8   UIKit                               0x00450647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
9   UIKit                               0x0044f438 -[UIControl touchesBegan:withEvent:] + 277
10  UIKit                               0x003e4025 -[UIWindow _sendTouchesForEvent:] + 395
11  UIKit                               0x003c537a -[UIApplication sendEvent:] + 447
12  UIKit                               0x003ca732 _UIApplicationHandleEvent + 7576
13  GraphicsServices                    0x01dd2a36 PurpleEventCallback + 1550
14  CoreFoundation                      0x01606064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
15  CoreFoundation                      0x015666f7 __CFRunLoopDoSource1 + 215
16  CoreFoundation                      0x01563983 __CFRunLoopRun + 979
17  CoreFoundation                      0x01563240 CFRunLoopRunSpecific + 208
18  CoreFoundation                      0x01563161 CFRunLoopRunInMode + 97
19  GraphicsServices                    0x01dd1268 GSEventRunModal + 217
20  GraphicsServices                    0x01dd132d GSEventRun + 115
21  UIKit                               0x003ce42e UIApplicationMain + 1160
22  vegas_hipster                       0x00002330 main + 102
23  vegas_hipster                       0x000022c1 start + 53
24  ???                                 0x00000001 0x0 + 1

)

terminate called after throwing an instance of 'NSException'

Program received signal: “SIGABRT”.


You need to use initWithObjects: method, not arrayWithObjects.


[[NSArray alloc] arrayWithObjects:...

isn't valid. Try:

[NSArray arrayWithObjects:...
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜