[英]sizeof crashing on iPad 1 but not > iPad 1
考虑以下代码:
CGFloat largerLineSpacing = kStreamCellParagraphSpacing;
CTParagraphStyleSetting paragraphSettings[1] = {
{ kCTParagraphStyleSpecifierParagraphSpacing, sizeof(CGFloat), &largerLineSpacing }
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphSettings, sizeof(*paragraphSettings));
在iPad 1(5.1)上运行时,此代码与EXC_BAD_ACCESS崩溃,但不是5.1模拟器或iPad 3(6.0)。 我的C很弱 - 我是否因为sizeof而犯了一个愚蠢的错误?
CTParagraphStyleCreate的文档表明它的第二个参数给出了paragraphSettings
数组中的CTParagraphStyleSetting
实例的数量(在你的例子中为1),而不是数组的字节大小。
如果您将代码更改为
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphSettings, 1);
它应该工作。 或者,如果您想要应对将来添加更多设置,您可以尝试
int numElems = sizeof(paragraphSettings)/sizeof(paragraphSettings[0]);
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphSettings,
numElems);
static CFIndex const settingCount = 1;
CTParagraphStyleSetting paragraphSettings[settingCount] = {
{ kCTParagraphStyleSpecifierParagraphSpacing, sizeof(CGFloat), &largerLineSpacing }
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphSettings, settingCount);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.