1

我正在尝试使用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(大小=1342177280)失败(错误代码=12) 错误:无法分配区域 * * 在 malloc_error_break 中设置断点进行调试


这很奇怪,因为有时在我看来完成相同的操作时它会起作用

4

4 回答 4

0

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

于 2012-09-15T02:36:08.177 回答
0

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

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

Goto Run -> Show -> Breakpoints (Alt-Command-B)
Scroll to the bottom of the list and add the symbol malloc_error_break
于 2012-09-10T12:44:54.163 回答
0

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

于 2014-04-10T09:38:01.390 回答
0

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

于 2015-12-25T04:54:11.813 回答