设置alertviewstyle时应用程序崩溃

时间:2012-09-10 12:11:45

标签: ios uialertview

我正在尝试使用alertviewstyle来使用用户输入的文本。 当我在不改变风格的情况下显示alertview时,它会起作用。

当我将样式更改为UIAlertViewStylePlainTextInput时,我收到此错误:

  

错误:地址不包含指向目标文件中某个部分的部分。

我使用以下代码:

nameAlertView =
    [[UIAlertView alloc] initWithTitle:[langFile objectForKey:@"sequenceTitel"]
                               message:[langFile objectForKey:@"sequenceTitel"]
                              delegate:self
                     cancelButtonTitle:[langFile objectForKey:@"cancel"]
                     otherButtonTitles:[langFile objectForKey:@"save"], nil];

nameAlertView.alertViewStyle = UIAlertViewStylePlainTextInput;

[nameAlertView show];
[nameAlertView release];

修改

我正在使用iOS 5.1,我从调试器得到了以下反馈:

  

培训工具(2332,0x3f080d98)malloc: * mmap(size = 1342177280)失败(错误代码= 12)    错误:无法分配区域   * *在malloc_error_break中设置断点以进行调试


这很奇怪,因为有时它在我的视图中完成相同的动作时起作用

4 个答案:

答案 0 :(得分:0)

当你在调试器中断时,你会发现对象是什么。只需查看调用堆栈,您就会找到释放(或释放)它的位置。这将告诉你它是哪个对象。

设置断点的最简单方法是:

Goto Run -> Show -> Breakpoints (Alt-Command-B)
Scroll to the bottom of the list and add the symbol malloc_error_break

答案 1 :(得分:0)

我在将部署目标设置为4.X时遇到了同样的问题,因为此样式属性仅在ios5中受支持。即使您的设备是ios 5.1,也要确保“部署目标”为5.1。

答案 2 :(得分:0)

显示后不要立即释放UIAlertView。请在委托回调中释放它。

答案 3 :(得分:0)

我今天遇到了同样的问题,我搜索了this thing,它解决了我的问题,希望你能回答混乱。 这意味着因为在设置alert.alertviewstyle之前,键盘打开导致问题,当我在设置alertviewstyle之前关闭键盘时,它是正常的。 这是iOS 9之前的一个bug,iOS 9修复它。