gpt4 book ai didi

ios - 绘制矩形 :withAttributes dies with "message sent to deallocated instance"

转载 作者:行者123 更新时间:2023-11-29 13:04:44 25 4
gpt4 key购买 nike

我正在更新适用于 iOS 7 的应用程序。其中一项更改是切换到新的 drawInRect:withAttributes 函数,而不是已弃用的 drawInRect:withFont...这在 iOS 7 beta 上运行良好,但今天升级到最新的 iOS 7 版本后,应用程序崩溃了:

[text drawInRect:theRect withAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:fontSz], NSFontAttributeName, color, NSForegroundColorAttributeName, nil]];

随消息:

*** -[NSStringDrawingTextStorage textContainerForAttributedString:containerSize:lineFragmentPadding:]: message sent to deallocated instance 0x187ed0f0

我尝试运行 Zombie instrument,这根本没有帮助,我的代码中既没有分配也没有释放有问题的对象。具体来说,我收到消息:

An Objective-C message was sent to a deallocated 'NSStringDrawingTextStorage' object (zombie) at address: 0x169edc50.

对象的malloc/release都在调用者之下:

[NSStringDrawingTextStorage stringDrawingTextStorage]

我做错了什么?

最佳答案

我能够通过从我正在渲染的 NSString 中修剪前导空格(包括换行符)来解决这个问题。这是我的分类方法:

- (NSString*)stringByTrimmingLeadingWhitespace
{
NSUInteger index = 0;

while((index < [self length]) && [[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember: [self characterAtIndex: index]])
{
index++;
}

return [self substringFromIndex: index];
}

不幸的是,如果您必须保留前导换行符,我没有其他答案。

关于ios - 绘制矩形 :withAttributes dies with "message sent to deallocated instance",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com