iOS中的新功能,这里是问题:
我正在使用xcode 4.0.2 iso-4.3.2
。
这里我有一个表,我正在创建一个像
mainarray=[[NSMutableArray alloc]initWithObjects:@"Hi",@"Hello"nil];
并将该值发送到.Table委托方法,如
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
这里的价值即将来临,但一旦我将动态值发送到主阵列,如
mainarray=[[NSMutableArray alloc]initWithObjects:[dataarray valueForKey:@"first_name"],nil]; or
[mainarray addobject:[dataarray valueForKey:@"first_name"]]
并将该mainarray值发送到cell.textlabel.text
然后我的程序正在终止并发送此错误消息。
2011-05-11 10:29:10.346 picture:vide[742:207] -[__NSArrayI isEqualToString:]: unrecognized selector sent to instance 0x4e85200
2011-05-11 10:29:10.348 picture:vide[742:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI isEqualToString:]: unrecognized selector sent to instance 0x4e85200'
*** Call stack at first throw:
(
0 CoreFoundation 0x00ddb5a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x00f2f313 objc_exception_throw + 44
2 CoreFoundation 0x00ddd0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00d4c966 ___forwarding___ + 966
4 CoreFoundation 0x00d4c522 _CF_forwarding_prep_0 + 50
5 UIKit 0x003ecafc -[UILabel setText:] + 72
6 picture:vide 0x000050c9 -[VideoChatController1 tableView:cellForRowAtIndexPath:] + 376
7 UIKit 0x00340b98 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 634
8 UIKit 0x003364cc -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 75
9 UIKit 0x0034b8cc -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1561
10 UIKit 0x0034390c -[UITableView layoutSubviews] + 242
11 QuartzCore 0x01d7ba5a -[CALayer layoutSublayers] + 181
12 QuartzCore 0x01d7dddc CALayerLayoutIfNeeded + 220
13 QuartzCore 0x01d230b4 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
14 QuartzCore 0x01d24294 _ZN2CA11Transaction6commitEv + 292
15 QuartzCore 0x01d2446d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
16 CoreFoundation 0x00dbc89b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
17 CoreFoundation 0x00d516e7 __CFRunLoopDoObservers + 295
18 CoreFoundation 0x00d1a1d7 __CFRunLoopRun + 1575
19 CoreFoundation 0x00d19840 CFRunLoopRunSpecific + 208
20 CoreFoundation 0x00d19761 CFRunLoopRunInMode + 97
21 GraphicsServices 0x017321c4 GSEventRunModal + 217
22 GraphicsServices 0x01732289 GSEventRun + 115
23 UIKit 0x002d9c93 UIApplicationMain + 1160
24 picture:vide 0x00002910 main + 102
25 picture:vide 0x000028a1 start + 53
)
请帮助。
答案 0 :(得分:2)
在这里你得到这个终止日志,因为
dataArray是一个NSArray,你无法调用[dataarray valueForKey:@"first_name"]
这个
因为这对NSArray来说是不受欢迎的
除此之外你可以使用像这样的东西
[[dataarray objectAtIndex:index] valueForKey:@"first_name"]
答案 1 :(得分:0)
[__NSArrayI isEqualToString:]:
就是问题所在。您正在某处使用isEqualToString:
数组。检查一下。它是NSString
答案 2 :(得分:0)
数组的初始化是错误的。
以下行
mainarray=[[NSMutableArray alloc]initWithObjects:@"Hi",@"Hello"nil];
应更正为
mainarray=[[NSMutableArray alloc]initWithObjects:@"Hi",@"Hello" , nil];
请注意 @“Hello”和 nil
之间的新逗号