- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经打开了 NSZombieEnabled,当发生以下情况时,我似乎遇到了崩溃。
通过选项卡栏转到“设置” View Controller ,然后从那里进入罪魁祸首 View Controller ,然后单击另一个选项卡(之前不返回到设置 View Controller ),然后单击“设置”选项卡栏再次。
这是tableView的代码:cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell;
static NSString *CellIdentifier = @"Cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"temp"] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
if(indexPath.section == 1 && [PMSessionManager instance].paymentMethods.cards != nil)
{
if([[PMSessionManager instance].paymentMethods.cards count] > indexPath.row)
{
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
//Reverse the array if it's in the wrong order
if([[[[PMSessionManager instance].paymentMethods.cards objectAtIndex:indexPath.row] cardStatus] isEqualToString:@"Secondary"] && indexPath.row == 0)
{
NSArray* reversedArray = [[[PMSessionManager instance].paymentMethods.cards reverseObjectEnumerator] allObjects];
[PMSessionManager instance].paymentMethods.cards = reversedArray;
}
PMCardInfo *cardInfo = [[PMSessionManager instance].paymentMethods.cards objectAtIndex:indexPath.row];
if([cardInfo.cardStatus isEqualToString:@"Primary"] && indexPath.row == 1)
cardInfo = [[PMSessionManager instance].paymentMethods.cards objectAtIndex:(indexPath.row -1)];
UILabel *cardLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth,
0.075 * (tableView.rowHeight - 2 * 14),
200,
26)]
autorelease];
[cell.contentView addSubview:cardLabel];
cardLabel.text = [NSString stringWithFormat:@"%@", [cardInfo.cardStatus capitalizedString]];
cardLabel.backgroundColor = [UIColor clearColor];
cardLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
cardLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
NSString *cardTypeString = [NSString stringWithFormat:@"%@", [cardInfo.cardType capitalizedString]];
CGSize cardTypeStringSize = [cardTypeString sizeWithFont:[UIFont boldSystemFontOfSize:[UIFont systemFontSize]]];
UILabel *cardTypeLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth,
0.63 * (tableView.rowHeight - 2 * 14),
cardTypeStringSize.width,
24)]
autorelease];
[cell.contentView addSubview:cardTypeLabel];
cardTypeLabel.text = [NSString stringWithFormat:@"%@", [cardInfo.cardType capitalizedString]];
cardTypeLabel.backgroundColor = [UIColor clearColor];
cardTypeLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
cardTypeLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
UILabel *digitsLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cardTypeStringSize.width + 4 + cell.indentationWidth,
0.6 * (tableView.rowHeight - 2 * 14),
150,
26)]
autorelease];
[cell.contentView addSubview:digitsLabel];
digitsLabel.text = [NSString stringWithFormat:@"ending with %@", cardInfo.last4Digits];
digitsLabel.backgroundColor = [UIColor clearColor];
digitsLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
digitsLabel.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
//Let's make the expiration year just two digits
if(cardInfo.expYear.length == 4)
cardInfo.expYear = [cardInfo.expYear substringFromIndex:2];
UILabel *expirationLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth,
1.0 * (tableView.rowHeight - 2 * 14),
150,
26)]
autorelease];
[cell.contentView addSubview:expirationLabel];
expirationLabel.text = [NSString stringWithFormat:@"Expires on %@/%@", cardInfo.expMonth, cardInfo.expYear];
expirationLabel.backgroundColor = [UIColor clearColor];
expirationLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
expirationLabel.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
}
else
{
UILabel *cardTypeLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth,
0.25 * (tableView.rowHeight - 2 * 14),
275.0,
24)]
autorelease];
[cell.contentView addSubview:cardTypeLabel];
if([[PMSessionManager instance].paymentMethods.cards count] == 2)
cardTypeLabel.text = @"Swap Primary and Secondary Cards";
else
cardTypeLabel.text = @"Add Credit Card";
cardTypeLabel.textAlignment = UITextAlignmentCenter;
cardTypeLabel.backgroundColor = [UIColor clearColor];
cardTypeLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
cardTypeLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
}
}
else if(indexPath.section == 0)
{
if([PMSessionManager instance].paymentMethods.wallet != nil)
{
if(indexPath.row == 0)
{
NSString *balanceString = [Util numberToCurrencyString:[PMSessionManager instance].paymentMethods.wallet.balance];
NSString *availableBalanceString = @"Available Balance";
CGSize balanceStringSize = [balanceString sizeWithFont:[UIFont boldSystemFontOfSize:32.0]];
CGSize availableBalanceStringSize = [availableBalanceString sizeWithFont:[UIFont boldSystemFontOfSize:[UIFont systemFontSize]]];
CGFloat textWidth = balanceStringSize.width + 5.0 + availableBalanceStringSize.width;
CGFloat margin = (275.0 - textWidth)/2;
UILabel *balanceLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth + margin,
0.45 * (tableView.rowHeight - 2 * 14),
275.0,
32)]
autorelease];
[cell.contentView addSubview:balanceLabel];
balanceLabel.text = balanceString;
balanceLabel.textAlignment = UITextAlignmentLeft;
balanceLabel.backgroundColor = [UIColor clearColor];
balanceLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
balanceLabel.font = [UIFont boldSystemFontOfSize:32.0];
UILabel *walletBalanceLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
balanceStringSize.width + 5 + cell.indentationWidth + margin,
0.72 * (tableView.rowHeight - 2 * 14),
275.0,
24)]
autorelease];
[cell.contentView addSubview:walletBalanceLabel];
walletBalanceLabel.text = availableBalanceString;
walletBalanceLabel.textAlignment = UITextAlignmentLeft;
walletBalanceLabel.backgroundColor = [UIColor clearColor];
walletBalanceLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
walletBalanceLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
if(indexPath.row == 1)
{
UILabel *walletSettingsLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth,
0.25 * (tableView.rowHeight - 2 * 14),
275.0,
24)]
autorelease];
[cell.contentView addSubview:walletSettingsLabel];
walletSettingsLabel.text = @"Edit Wallet Settings";
walletSettingsLabel.textAlignment = UITextAlignmentCenter;
walletSettingsLabel.backgroundColor = [UIColor clearColor];
walletSettingsLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
walletSettingsLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
}
}
else
{
if(indexPath.row == 0)
{
UILabel *learnMoreLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth,
0.25 * (tableView.rowHeight - 2 * 14),
275.0,
24)]
autorelease];
[cell.contentView addSubview:learnMoreLabel];
learnMoreLabel.text = @"Learn More";
learnMoreLabel.textAlignment = UITextAlignmentCenter;
learnMoreLabel.backgroundColor = [UIColor clearColor];
learnMoreLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
learnMoreLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
}
if(indexPath.row == 1)
{
UILabel *signUpLabel =
[[[UILabel alloc]
initWithFrame:
CGRectMake(
cell.indentationWidth,
0.25 * (tableView.rowHeight - 2 * 14),
275.0,
24)]
autorelease];
[cell.contentView addSubview:signUpLabel];
signUpLabel.text = @"Sign Up for Wallet";
signUpLabel.textAlignment = UITextAlignmentCenter;
signUpLabel.backgroundColor = [UIColor clearColor];
signUpLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
signUpLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
}
}
}
return cell;
}
使用 NSZombieEnabled,我在日志中收到此消息:
-[PaymentMethodViewController tableView:cellForRowAtIndexPath:]: message sent to deallocated instance 0x404ae00
上面的代码片段来自此 PaymentMethodViewController。有什么想法吗?
最佳答案
这个问题的第一个答案似乎已经解决了这个问题。
Pop to root view controller without animation crash for the table view
关于ios - TableView 上的 EXC_BAD_ACCESS (SIGSEGV) :cellForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11691765/
这个问题是针对 Linux 提出的。使用 GCC 编译器。 如果 SIGSEGV(我的意思是通常会导致 SIGSEGV 的违规行为)发生在旨在捕获 SIGSEGV 的信号处理程序中,可以预期会有什么行
我正在构建一个 C++ 程序,我需要在其中处理 SIGSEGV 并且信号处理程序应该能够打印回溯。任何人都可以帮忙吗。 问候 最佳答案 获得 SIGSEV 回溯的最好方法是生成核心文件而不是打印回溯。
我有一个屏幕A,在执行了一些POST API任务后,我启用了一个按钮,然后单击按钮导航到屏幕B。当Reaction Native应用程序冻结并崩溃时,崩溃会随机发生。从其他屏幕导航到屏幕B也不是问题,
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在编写这个方法(C 语言),它应该为链表创建一个新节点。它在第一个 if (SIGSEGV 信号)之后的行崩溃 我正在调试该方法,因此后续行中可能会有更多错误,但目前我将感谢有关此特定行的任何观察
这是我的比较函数: int compareInts(const void *a, const void *b) { const int *pa = (const int*)a; con
我一直在研究一些有缺陷的代码,并想安装一个 SIGSEGV 处理程序来获取有关崩溃的更多信息。但是,我注意到我的处理程序没有被调用。 我一直在寻找原因,它似乎与损坏的堆栈指针值有关(它肯定没有被屏蔽)
我是编码新手。当我在 codecheff 中提交代码时,它给出“运行时错误(SIGSEGV)”。我不知道有什么问题请帮忙。提前致谢。 int call(int *x, int m) { int
CodeChef 问题: Shivam 是世界上最年轻的程序员,他只有 12 岁。 Shivam 正在学习编程,今天他正在编写他的第一个程序。 程序很简单,给定两个整数A和B,编写一个程序将这两个数字
我正在编写一个编程问题的解决方案。问题如下: Your program is to use the brute-force approach in order to find the Answer t
好吧,只是为了好玩,我正在研究埃拉托色尼筛。它最初运行良好,因此我寻求提高其运行时复杂性。现在,我不知道为什么,但我遇到了段错误。代码如下: #include #include int main(
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在创建一个简单的链表程序来插入和查看 LL 的元素。当我尝试插入第二个元素时,它给出 SIGSEV,但我不明白为什么?!! 请帮我指出问题: main.c: #include #includ
我试图提交此代码以解决 hackerearth 上的问题,但我得到了此 SIGSEGV 运行时错误。我读到了这个错误,但我无法让我的代码工作。有人说这是由于无效的内存引用、数组的动态初始化或数组索引超
我正在思考 leetcode 问题 167,但我的代码遇到了段错误 (SIGSEGV) 问题。下面是我的c代码,预期的答案是[1,3]。 #include #include /** * Return
我有一个在ARM平台上运行的多线程程序。在其中一个线程中,我将调用 system() 来运行某些 shell 命令。最近,我发现有时候,由system() fork 的子进程会以SIGSEGV终止。
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我很高兴知道为什么我遇到此错误 http://www.codechef.com/problems/AXR1P2在 codechef.com 中,我的代码是... #include #include i
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在使用 POSIX 套接字在 Android 上编写一些网络代码,但是当我调用 Sento 时,我收到了一个奇怪的 SIGSEGV(信号 11,代码 1)。我已经使用墓碑跟踪来确定它是哪一行,但坦
我是一名优秀的程序员,十分优秀!