首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoa线程无法访问Cocoa API

Cocoa线程无法访问Cocoa API
EN

Stack Overflow用户
提问于 2011-09-11 06:08:38
回答 1查看 49关注 0票数 1

启动一个新线程。

代码语言:javascript
复制
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 

方法,使用

代码语言:javascript
复制
MyThread *thread1 = [[MyThread alloc] init] ;
[thread1 start] ;

其中MyThreadNSThread的子类。

如果我在线程的main方法中运行一个空的for循环并退出,它会工作得很好。但是,只要我尝试使用NSString甚至NSAutoReleasePool这样的Cocoa API,我的程序就会因为进入调试器而挂起。

问题的根源可能是什么?

提示:我尝试在调试器中单步执行,但它有一次给我一个SIGBUS错误。可能会有什么内存访问问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-11 10:35:41

这个问题很棘手。我在main()方法中间声明了一个1MB的大型字符数组。编译器正在将此声明推送到已编译方法的顶部。不知怎么的,这个空间太大了,因此一旦进入main方法,程序就会立即崩溃。不幸的是,即使我在此声明之前插入了一条return语句,程序也会崩溃,因为编译器会将此声明推到最开始。我将数组声明更改为malloc(),然后程序运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7375010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档