- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个类似于 Apple 提供的 PageControl
示例的应用程序。我的应用程序从服务器获取数据并将其存储在本地 NSMutableArray
中。然后通过加载单元格 nib 以网格格式显示该数组。
我的应用程序在模拟器上运行时在删除期间有一些延迟,但当我尝试在设备上运行它时,我的应用程序崩溃了。
此外,当我使用 Instruments
在设备上运行它时,它执行得很好。
已启用僵尸并出现以下错误。
*** -[__NSArrayM release]: message sent to deallocated instance 0x18aef0
这就是我正在做的:
didFinishLaunchingWithOptions
上,我调用了两个网络服务,获取数据并将其存储在本地数组中试图解决同样的问题。
这是我的代码。
//**AppDelegate.h**
@interface TumBhiAppDelegate : UIResponder {
NSMutableArray *arrDetailsByCategory;
}
@property (nonatomic, retain) IBOutlet NSMutableArray *arrDetailsByCategory;
-(IBAction)doneProcessing:(id)sender;
@end
//**AppDelegate.m**
#import "AppDelegate.h"
#import "Server.h"
@implementation AppDelegate
@synthesize arrDetailsByCategory;
//Once processing is done push the view
-(IBAction)doneProcessing:(id)sender
{
BaseContentViewController *baseController = [[BaseContentViewController alloc] initWithNibName:@"BaseContentViewController" bundle:nil];
[self.navigationController pushViewController:baseController animated:YES];
[baseController release];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
arrDetailsByCategory = [[NSMutableArray alloc] init];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[TumBhiViewController alloc] initWithNibName:@"TumBhiViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc]initWithRootViewController:self.viewController];
[self.navigationController setNavigationBarHidden:YES];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
//getDetails is called 5-6 time
//arrDetailsByCategory is populated accordingly
[Server getDetails:@"ABC"];
[self doneProcessing:nil];
return YES;
}
@end
//**Server.h**
@interface ServerCommunication : NSObject{
}
-(BOOL)getDetails:(NSString *)str
@end
//**Server.m**
#import "Server.h"
#import "AppDelegate.h"
@implementation ServerCommunication
-(BOOL)getDetails:(NSString *)str
{
NSMutableArray *arrFinal = [NSMutableArray array];
//call web-service populate arrFinal
[[[AppDelegate GetAppDelegate] arrDetailsByCategory] addObjectsFromArray:arrFinal];
}
@end
Debugger Message
*** -[__NSArrayM release]: message sent to deallocated instance 0x7aa0870
[Switching to process 636 thread 0x15903]
[Switching to process 636 thread 0x15903]
sharedlibrary apply-load-rules all
(gdb)
堆栈消息:
0x01920db0 <+0096> testb $0x1,(%eax)
0x01920db3 <+0099> je 0x1920ded <___forwarding___+157>
0x01920db5 <+0101> mov %edi,0x4(%esp)
0x01920db9 <+0105> movl $0x0,0x18(%esp)
0x01920dc1 <+0113> movl $0x0,0x14(%esp)
0x01920dc9 <+0121> movl $0x0,0x10(%esp)
0x01920dd1 <+0129> movl $0x0,0xc(%esp)
0x01920dd9 <+0137> movl $0x0,0x8(%esp)
0x01920de1 <+0145> movl $0x15,(%esp)
0x01920de8 <+0152> call 0x198ec10 <__CFRecordAllocationEvent>
0x01920ded <+0157> mov -0x10(%ebp),%eax
0x01920df0 <+0160> mov %eax,(%esp)
0x01920df3 <+0163> call 0x19fcbf6 <dyld_stub_sel_getName>
0x01920df8 <+0168> mov %edi,0x10(%esp)
0x01920dfc <+0172> mov %eax,0xc(%esp)
0x01920e00 <+0176> add $0xa,%esi
0x01920e03 <+0179> mov %esi,0x8(%esp)
0x01920e07 <+0183> lea 0x12e6aa(%ebx),%eax
0x01920e0d <+0189> mov %eax,0x4(%esp)
0x01920e11 <+0193> movl $0x3,(%esp)
0x01920e18 <+0200> call 0x196bad0 <CFLog>
0x01920e1d <+0205> int3
0x01920e1e <+0206> call 0x19fc8b4 <dyld_stub_getpid> //**Dies here with Thread 5**
0x01920e23 <+0211> mov %eax,(%esp)
0x01920e26 <+0214> movl $0x9,0x4(%esp)
0x01920e2e <+0222> call 0x19fc908 <dyld_stub_kill>
0x01920e33 <+0227> xor %edi,%edi
0x01920e35 <+0229> jmp 0x192112e <___forwarding___+990>
0x01920e3a <+0234> lea 0xed29f(%ebx),%eax
0x01920e40 <+0240> mov %eax,0x4(%esp)
0x01920e44 <+0244> mov %esi,(%esp)
0x01920e47 <+0247> call 0x19fcc56 <dyld_stub_strcmp>
0x01920e4c <+0252> test %eax,%eax
0x01920e4e <+0254> mov %edi,%eax
0x01920e50 <+0256> mov %eax,%edi
0x01920e52 <+0258> mov %eax,-0x14(%ebp)
0x01920e55 <+0261> jne 0x1920e63 <___forwarding___+275>
0x01920e57 <+0263> mov 0x130e5a(%ebx),%eax
0x01920e5d <+0269> mov -0x14(%ebp),%ecx
0x01920e60 <+0272> mov (%ecx,%eax,1),%edi
0x01920e63 <+0275> mov %edi,(%esp)
0x01920e66 <+0278> call 0x19fcad6 <dyld_stub_object_getClass>
0x01920e6b <+0283> mov 0x1255ee(%ebx),%ecx
最佳答案
可能是在向其发送释放消息之前,您的数据数组可能会因任何逻辑错误而被释放
使用断点检查它在哪里被释放
关于iphone - *** -[__NSArrayM 版本] : message sent to deallocated instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459537/
无法使用 Hive 版本 1.1.0 HBase 版本 0.94.8 和 hadoop 版本 2.7.0 从 hive 创建 Hbase 表 hive (default)> CREATE TABLE
我试图为 electron app 创建可执行文件但面临这个问题 Unable to determine Electron version. Please specify an Electron ve
我正在尝试让自适应阈值在 python 绑定(bind)到 opencv 中工作(swig 一个 - 无法让 opencv 2.0 工作,因为我正在使用 beagleboard 因为交叉编译还没有工作
我一直在 linux 机器上使用 JMeter,在命令行下使用了一段时间。工作正常。 今天,我在 Windows 机器(新客户端等)上尝试了它,它确实可以工作,但在控制台窗口中输出有很大不同。 Lin
在我的编码环境中,我通常使用最新版本的 Java 和 Eclipse。当我编写源代码时,我不会注意我使用的 API 方法或类是否向后兼容旧版本的 Java 或 Eclipse。在 javadoc 中存
问题是关于版本的特定组合,但更普遍。 我刚刚从 Kubuntu 12.04 升级到 14.04。现在,当我想编译 CUDA 代码(使用 CUDA 6.5)时,我得到: #error -- unsupp
我目前正在对我的一些应用程序进行沙箱处理,看来我必须删除一些功能才能满足 Mac App Store 沙箱(和其他)规则。 显然用户不会因为失去功能而感到高兴,我担心他们不会指责苹果制定了愚蠢的规则,
我用 flash 和 js 版本创建了一个动画横幅。 是否可以检测低于版本 9 的 ie 版本,然后提供 Flash 横幅,否则提供 js 横幅。 最佳答案 您可以使用条件注释来检测 IE 版本
我有一个处理不同位置的数据库的应用程序,我想检查这些数据库是否使用 Firebird 2.5 或更高版本打开。我们最近从 Firebird 2.0 迁移到了 2.5,我们有很多数据库可以响应 sele
我正在开发一个应用程序,我使用托管在我的服务器上的 Java 和 Jersey 构建了后端部分。我在服务器上使用 Tomcat7 来调用 Web 服务。 我以前有一台安装了 Ubuntu 的计算机,我
我可以使用 GetVersionEx() 函数来获取 Windows 版本,但是这个函数将返回一个数字而不是一个字符串。但是没有问题,因为我可以将数字转换为字符串,例如: if (osvi.dwMaj
我已经在我的系统中安装了 Anaconda 2 & 3。 Anaconda 2 包含 python 2.7 & Anaconda 3 包含 python 3.6。 我需要使用命令提示符运行我的 pyt
我正在尝试构建一个 Android 项目,但发生了以下错误 Error:(10, 1) A problem occurred evaluating project ':app'. > Failed t
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
在降级我的 GCC 之前,我想知道是否有办法确定我的机器中的哪些程序/框架或依赖项会中断,以及是否有更好的方法来执行 openpose 安装? (例如,在 CMake 中更改某些内容) 有没有办法在不
我已经在终端的代码sudo apt-get install Shadowsocks-qt5中安装了Shadowsocks-Qt5,然后我可以通过搜索找到启动图标,但是它当我点击图标时打不开。然后我尝试
在网络上找到的文档说,MLLP V2(第 2 版)是用于传输 HL7 版本 3 内容的所有消息传输协议(protocol)的要求。似乎 MLLP 第 2 版主要用于 HL7 第 3 版。 我们可以/应
我正在使用带有 selinium webdriver 的 Protractor 。我的chromeDriver版本是78.0.1,chrome版本是78.0.3904.97。两个版本都匹配,应该不会有
我正在按照教程设置 mysql 数据库并做一些事情。我无法找到数据库资源管理器。我读了很多,但在 Window->show View-> Dataxxx 或右侧上部选项卡中无法正常工作。 最佳答案 从
我已经在 KDE 桌面上安装了 Anaconda 2.0.1。当我运行 python 并看到所有已安装的模块时,我收到此消息“无法将不兼容的 Qt 库(版本 0x40801)与该库(版本 0x4080
我是一名优秀的程序员,十分优秀!