微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

表格视图不断给出NSException并崩溃

如何解决表格视图不断给出NSException并崩溃

| 嗨,我是iphone的新手,从iphone开始,我被困在表格视图中,我的应用不断显示NSException并崩溃 我在xib应用程序中添加tableView时就开始崩溃 这是TableViewController.m的代码
//
//  TableViewController.m
//  Table
//
//  Created by Kunwar Handa on 17/05/11.
//  copyright 2011. All rights reserved.
//

#import \"TableViewController.h\"

@implementation TableViewController

@synthesize listData;


/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(Nsstring *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
*/

/*
// Implement loadView to create a view hierarchy programmatically,without using a nib.
- (void)loadView {
}
*/



// Implement viewDidLoad to do additional setup after loading the view,typically from a nib.

#pragma mark Table View Control Methods

- (void)viewDidLoad 
{

    NSArray *array = [[NSArray alloc] initWithObjects:@\"sleepy1\",@\"sleepy2\",@\"sleepy3\",@\"sleepy4\",@\"sleepy5\",@\"sleepy6\",@\"sleepy7\",@\"sleepy8\",@\"sleepy9\",@\"sleepy10\",@\"sleepy11\",@\"sleepy12\",nil];

    self.listData = array;

    [array release];
    [super viewDidLoad];

}


// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotatetoInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}


- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn\'t have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data,images,etc that aren\'t in use.
}

- (void)dealloc {
    [listData release];
    [super dealloc];
}

#pragma mark -
#pragma mark Table View Data Source Methods

-(NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section

{
    return [self.listData count];

}

-(UITableViewCell *)tableView:(UITableView *)tableView 
        cellForRowAtIndexPath:(NSIndexPath *)indexPath

{
    static Nsstring *SimpleTableIdentifier = @\"SimpleTableIdentifier\";


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];


    if (cell == nil) {
        [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SimpleTableIdentifier] autorelease];


    }

    NSUInteger row = [indexPath row];
    cell.text = [listData objectAtIndex:row];
    return cell;

}




/*
- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

*/


@end
这是日志
2011-05-24 20:08:19.651 Table[4699:207] *** Assertion failure in -[UITableView _createPreparedCellForGlobalRow:withIndexPath:],/SourceCache/UIKit_Sim/UIKit-1447.6.4/UITableView.m:5613
2011-05-24 20:08:19.654 Table[4699:207] *** Terminating app due to uncaught exception \'NSInternalInconsistencyException\',reason: \'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:\'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00da8be9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x00efd5c2 objc_exception_throw + 47
    2   CoreFoundation                      0x00d61628 +[NSException raise:format:arguments:] + 136
    3   Foundation                          0x000ac47b -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116
    4   UIKit                               0x003258f3 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 883
    5   UIKit                               0x0031b77f -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 75
    6   UIKit                               0x00330450 -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1561
    7   UIKit                               0x00328538 -[UITableView layoutSubviews] + 242
    8   QuartzCore                          0x01c66451 -[CALayer layoutSublayers] + 181
    9   QuartzCore                          0x01c6617c CALayerLayoutIfNeeded + 220
    10  QuartzCore                          0x01c5f37c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
    11  QuartzCore                          0x01c5f0d0 _ZN2CA11Transaction6commitEv + 292
    12  UIKit                               0x002b419f -[UIApplication _reportAppLaunchFinished] + 39
    13  UIKit                               0x002b4659 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 690
    14  UIKit                               0x002bedb2 -[UIApplication handleEvent:withNewEvent:] + 1533
    15  UIKit                               0x002b7202 -[UIApplication sendEvent:] + 71
    16  UIKit                               0x002bc732 _UIApplicationHandleEvent + 7576
    17  GraphicsServices                    0x016dea36 PurpleEventCallback + 1550
    18  CoreFoundation                      0x00d8a064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    19  CoreFoundation                      0x00cea6f7 __CFRunLoopDoSource1 + 215
    20  CoreFoundation                      0x00ce7983 __CFRunLoopRun + 979
    21  CoreFoundation                      0x00ce7240 CFRunLoopRunSpecific + 208
    22  CoreFoundation                      0x00ce7161 CFRunLoopRunInMode + 97
    23  UIKit                               0x002b3fa8 -[UIApplication _run] + 636
    24  UIKit                               0x002c042e UIApplicationMain + 1160
    25  Table                               0x000027c8 main + 102
    26  Table                               0x00002759 start + 53
    27  ???                                 0x00000001 0x0 + 1
)
terminate called after throwing an instance of \'NSException\'
Program received signal:  “SIGABRT”.
(gdb) 
    

解决方法

您没有分配您的单元格。你需要...
cell = [[[UITableViewCell alloc] initWithFrame:CGR.........etc
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。