gpt4 book ai didi

iphone - 行数为 0 时 UITableView 中的 EXC_BAD_ACCESS 崩溃

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:14 26 4
gpt4 key购买 nike

当我将表中的行数设置为零时,我的 UITableView 一直崩溃。它因 EXC_BAD_ACCESS 错误而崩溃。崩溃是 UITableView 内部的,所以我不能直接看到哪里出了问题,尽管这对我来说应该是一个愚蠢的错误。

堆栈轨迹如下:

#0  0x0194ca60 in objc_msgSend ()
#1 0x00656837 in -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] ()
#2 0x0064c77f in -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] ()
#3 0x00661450 in -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] ()
#4 0x00659538 in -[UITableView layoutSubviews] ()
#5 0x00d39451 in -[CALayer layoutSublayers] ()
#6 0x00d3917c in CALayerLayoutIfNeeded ()
#7 0x00d3237c in CA::Context::commit_transaction ()
#8 0x00d320d0 in CA::Transaction::commit ()
#9 0x00d627d5 in CA::Transaction::observer_callback ()
#10 0x013a3fbb in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#11 0x013390e7 in __CFRunLoopDoObservers ()
#12 0x01301bd7 in __CFRunLoopRun ()
#13 0x01301240 in CFRunLoopRunSpecific ()
#14 0x01301161 in CFRunLoopRunInMode ()
#15 0x01d42268 in GSEventRunModal ()
#16 0x01d4232d in GSEventRun ()
#17 0x005f142e in UIApplicationMain ()
#18 0x000518ec in main (argc=1, argv=0xbfffef84) at /Users/megahub/xcode/QuamSec/main.m:15

而我的代码如下:

- (id)initWithFrame:(CGRect)frame {

self = [super initWithFrame:frame];
if (self) {

m_oPositionTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 367) style:UITableViewStylePlain];
m_oPositionTableView.delegate = self;
m_oPositionTableView.dataSource = self;
m_oPositionTableView.separatorStyle = UITableViewCellSeparatorStyleNone;

[self addSubview:m_oPositionTableView];

m_oAppDelegate = (AyersGTSAppDelegate *)[[UIApplication sharedApplication] delegate];

}
return self;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
if (m_oPositionItems == nil)
return 0;
else
return [m_oPositionItems count];
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"QuamPortfolioPositionCell";

QuamPortfolioPositionCell *cell = (QuamPortfolioPositionCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"QuamPortfolioPositionCell" owner:self options:nil] lastObject];
}

// Configure the cell...
SPPositionItem *oPositionItem = [m_oPositionItems objectAtIndex:indexPath.row];
cell.oSymbol.text = oPositionItem.sProdCode;
cell.oMktPrice.text = oPositionItem.sMktPrice;
cell.oNet.text = oPositionItem.sNet;
cell.oAmount.text = oPositionItem.sMktVal;

return cell;
}

只有当表中的行数为0时才会发生崩溃。如果我将返回的行数硬编码为1,则不会出现崩溃。

最佳答案

原来是我忘记在之前的初始化函数中返回一个表格单元格。现在全部修复。

关于iphone - 行数为 0 时 UITableView 中的 EXC_BAD_ACCESS 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4552789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com