Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 备用警报崩溃_Objective C_Ios - Fatal编程技术网

Objective c 备用警报崩溃

Objective c 备用警报崩溃,objective-c,ios,Objective C,Ios,这快把我逼疯了 我已经尝试使用表视图实现alertview,与演示应用程序完全相同。但是,在矿山上,它会与以下内容发生碰撞: *-[SBTableAlert tableView:cellForRowAtIndexPath:]:消息已发送到解除分配的实例0x1e0aa800 我知道这是为什么,我只是无法跟踪或修复它。同样令人费解的是,为什么我的版本不能工作,而演示应用程序版本却不能。除非我遗漏了一些明显的东西 我的实施: SBTableAlert *alert = [[SBTableAlert

这快把我逼疯了

我已经尝试使用表视图实现alertview,与演示应用程序完全相同。但是,在矿山上,它会与以下内容发生碰撞: *-[SBTableAlert tableView:cellForRowAtIndexPath:]:消息已发送到解除分配的实例0x1e0aa800

我知道这是为什么,我只是无法跟踪或修复它。同样令人费解的是,为什么我的版本不能工作,而演示应用程序版本却不能。除非我遗漏了一些明显的东西

我的实施:

 SBTableAlert *alert = [[SBTableAlert alloc] initWithTitle:NSLocalizedString(@"contact_deleted_title", NULL) cancelButtonTitle:NSLocalizedString(@"contact_deleted_cancel_button_title", NULL) messageFormat:NSLocalizedString(@"contact_deleted_message", NULL)];
    [alert setType:SBTableAlertTypeMultipleSelct];
    [alert.view addButtonWithTitle:NSLocalizedString(@"contact_deleted_other_button_title", NULL)];
    [alert.view setTag:0];
    [alert setDataSource:self];
    [alert setDelegate:self];
    [alert show];
为了调试,我的委托方法实现是直接从示例应用程序复制和粘贴的,SBTableAlert.h/m未被触及


救命啊

您错过了[警报自动释放]


如果不使用ARC,上述代码将无法工作。但是,您不应使用ARC,因此由于缺少参考,必须使用释放/自动释放/解除锁定。

您错过了[alert autorelease]


如果不使用ARC,上述代码将无法工作。但是,您不应该使用ARC,因此由于缺乏参考,必须使用release/autorelease/dealloc;下面概述的解决方案解决了这一问题:

步骤1:
SBTableAlert.h
SBTableAlert.m
添加到项目中。这个类使用MRC

第2步:因此,告诉
ARC
排除整个类文件(the.m),进入
目标构建阶段,在
编译器源代码中添加
-fno objc ARC
标志,如下图所示:

步骤3:发送到解除分配实例0x1e0aa800的
消息发生错误,因为
SBTableAlert*警报
在警报显示之前由
ARC
解除分配

确保它在你需要的时候还在。使其成为一个强大的属性,即。 在


希望这有帮助

我有这个问题;下面概述的解决方案解决了这一问题:

步骤1:
SBTableAlert.h
SBTableAlert.m
添加到项目中。这个类使用MRC

第2步:因此,告诉
ARC
排除整个类文件(the.m),进入
目标构建阶段,在
编译器源代码中添加
-fno objc ARC
标志,如下图所示:

步骤3:发送到解除分配实例0x1e0aa800的
消息发生错误,因为
SBTableAlert*警报
在警报显示之前由
ARC
解除分配

确保它在你需要的时候还在。使其成为一个强大的属性,即。 在


希望这有帮助

你有没有找到解决办法?没有。我记不起我做了什么。是个老项目。@CW007007别担心。我让它工作了。我在下面贴了对我有用的东西。你有没有找到解决这个问题的办法?没有。我不记得我做了什么。是个老项目。@CW007007别担心。我让它工作了。我把对我有用的东西贴在下面。
//
//  YourViewController.h
//

#import <UIKit/UIKit.h>
#import "SBTableAlert.h"

@interface YourViewController : UITableViewController <SBTableAlertDelegate,     SBTableAlertDataSource>{

@property (strong, nonatomic) SBTableAlert *strongAlert;

}

@end

//
//  YourViewController.m
//

@implementation YourViewController
@synthesize strongAlert;
strongAlert = [[SBTableAlert alloc] initWithTitle:NSLocalizedString(@"contact_deleted_title", NULL) cancelButtonTitle:NSLocalizedString(@"contact_deleted_cancel_button_title", NULL) messageFormat:NSLocalizedString(@"contact_deleted_message", NULL)];
[strongAlert setType:SBTableAlertTypeMultipleSelct];
[strongAlert.view addButtonWithTitle:NSLocalizedString(@"contact_deleted_other_button_title", NULL)];
[strongAlert.view setTag:0];
[strongAlert setDataSource:self];
[strongAlert setDelegate:self];
[strongAlert show];