'sizeWithFont:constrainedToSize:lineBreakMode:' 已弃用:首先在 iOS 7.0 中弃用 - 使用 -boundingRectWithSize:options:attributes:context:

'sizeWithFont:constrainedToSize:lineBreakMode:' is deprecated: first deprecated in iOS 7.0 - Use -boundingRectWithSize:options:attributes:context:

我的应用太旧了。现在,我想更新最新的 IOS。我的部署目标是 6.0,但是当我将我的部署目标 6.0 更改为 7.1 时。我的应用程序发出了太多警告。这是其中之一:

'sizeWithFont:constrainedToSize:lineBreakMode:' is deprecated: first deprecated in iOS 7.0 - Use -boundingRectWithSize:options:attributes:context:

警告出现在这一行:

CGSize expectedLength = [str sizeWithFont:str.font constrainedToSize:max lineBreakMode:str.lineBreakMode];  

我会尝试使用此代码。但我不知道如何添加换行模式。请检查:

CGSize mysize = [str sizeWithAttributes:@{NSFontAttributeName: str.font}];

我已经在 Whosebug 上查看过了。但由于 lineBreakMode.
,我对已检查的答案不满意 可能是我错过了一些好的答案。还告诉我 Whosebug link 这对我有帮助。

提前致谢。

谢谢大家。在另一个问题的帮助下,我终于解决了我的问题。这是我用旧代码替换的代码:

    CGSize max = CGSizeMake(str.frame.size.width, 500);
    CGRect expected1 = [str boundingRectWithSize:max options:NSStringDrawingUsesLineFragmentOrigin  
    attributes:@{NSFontAttributeName: str.font } context:nil];
    CGSize expected = expected1.size;
    NSLog(@"expected %@",NSStringFromCGSize(expected));