UITable cellForRowAtIndexPath

时间:2011-05-11 05:08:10

标签: iphone

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
)

请帮助。

3 个答案:

答案 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

之间的新逗号