好吧,我有从iOS 6升级到7的问题.iOS 6工作正常,但我在iOS7中收到以下错误
我不确定,但我认为错误发生在这里。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Events Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
Event *event = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = event.name;
return cell;
}
基本上当我调用TableViewCell时,它会调出一个Datepicker但是当我点击“完成”按钮时它会崩溃。有线索吗?
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewWrapperView indexPathForCell:]: unrecognized selector sent to instance 0xc133070'
2013-09-24 17:26:14.056 CRM4Life[36587:a0b] -[UITableViewWrapperView indexPathForCell:]: unrecognized selector sent to instance 0xc133070
2013-09-24 17:26:14.097 CRM4Life[36587:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewWrapperView indexPathForCell:]: unrecognized selector sent to instance 0xc133070'
*** First throw call stack:
(
0 CoreFoundation 0x02d425e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x019818b6 objc_exception_throw + 44
2 CoreFoundation 0x02ddf903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x02d3290b ___forwarding___ + 1019
4 CoreFoundation 0x02d324ee _CF_forwarding_prep_0 + 14
5 CRM4Life 0x0000dd0e -[CoreDataTableViewCell resignFirstResponder] + 206
6 UIKit 0x00640550 -[UIResponder becomeFirstResponder] + 347
7 UIKit 0x00543d0b -[UIView(Hierarchy) becomeFirstResponder] + 114
8 UIKit 0x00bc30e3 -[UITextField becomeFirstResponder] + 51
9 UIKit 0x00868651 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 135
10 UIKit 0x0086aba2 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] + 2640
11 UIKit 0x0085ef8c _UIGestureRecognizerSendActions + 230
12 UIKit 0x0085dc00 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 383
13 UIKit 0x0085f66d -[UIGestureRecognizer _delayedUpdateGesture] + 60
14 UIKit 0x00862bcd ___UIGestureRecognizerUpdate_block_invoke + 57
15 UIKit 0x00862b4e _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 317
16 UIKit 0x00859248 _UIGestureRecognizerUpdate + 199
17 UIKit 0x00525d4a -[UIWindow _sendGesturesForEvent:] + 1291
18 UIKit 0x00526c6a -[UIWindow sendEvent:] + 1030
19 UIKit 0x004faa36 -[UIApplication sendEvent:] + 242
20 UIKit 0x004e4d9f _UIApplicationHandleEventQueue + 11421
21 CoreFoundation 0x02ccb8af __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
22 CoreFoundation 0x02ccb23b __CFRunLoopDoSources0 + 235
23 CoreFoundation 0x02ce830e __CFRunLoopRun + 910
24 CoreFoundation 0x02ce7b33 CFRunLoopRunSpecific + 467
25 CoreFoundation 0x02ce794b CFRunLoopRunInMode + 123
26 GraphicsServices 0x02f9c9d7 GSEventRunModal + 192
27 GraphicsServices 0x02f9c7fe GSEventRun + 104
28 UIKit 0x004e794b UIApplicationMain + 1225
29 CRM4Life 0x0000216d main + 141
30 CRM4Life 0x000020d5 start + 53
31 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
答案 0 :(得分:28)
//for iOS 6 or earlier
UITableView* tableView = (UITableView *)cell.superview;
// for iOS 7 UITableViewWrapperView has been added as superview
if (IOS_7) {
tableView = (UITableView *)cell.superview.superview;
}
在iOS7中
UITableViewCellScrollView
已被引入为细胞&
UITableViewWrapperView
已作为单元格的超级视图引入。 (仅1级)
因此,如果您想要获取UITableView实例 UITableViewWrapperView,你将不得不使用superview UITableViewWrapperView实例。