Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:接收器类型“CGSize”(也称为“struct CGSize”)| Xcode 6.4 | iOS 8.4不正确_Ios_Compiler Errors_Xcode6 - Fatal编程技术网

错误:接收器类型“CGSize”(也称为“struct CGSize”)| Xcode 6.4 | iOS 8.4不正确

错误:接收器类型“CGSize”(也称为“struct CGSize”)| Xcode 6.4 | iOS 8.4不正确,ios,compiler-errors,xcode6,Ios,Compiler Errors,Xcode6,我对一个不推荐的方法有一个问题,我正在尝试将它改为一个正在工作的方法,但是运气不好,有人知道如何解决这个问题吗 问题是,我正在编写一个不是我的代码,所以我没有很好地理解它 这是不推荐使用的原始代码: 这是我抛出错误的解决方案: 错误出现在标题错误接收器类型“CGSize”或“struct CGSize”中 非常感谢你 您的问题在这一行: CGSize detailsLabelSize = [[detailsLabel.text sizeWithAttributes:@{NSFontAttribu

我对一个不推荐的方法有一个问题,我正在尝试将它改为一个正在工作的方法,但是运气不好,有人知道如何解决这个问题吗

问题是,我正在编写一个不是我的代码,所以我没有很好地理解它

这是不推荐使用的原始代码:

这是我抛出错误的解决方案:

错误出现在标题错误接收器类型“CGSize”或“struct CGSize”中


非常感谢你

您的问题在这一行:

CGSize detailsLabelSize = [[detailsLabel.text sizeWithAttributes:@{NSFontAttributeName:detailsLabel.font}]constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];

[detailsLabel.text sizeWithAttributes:@{NSFontAttributeName:detailsLabel.font}]返回一个不是对象的CGSize。然后,您试图在此CGSize上调用constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode,这是不可能的,因为它不是对象。

在实现文件中添加此方法:

-(CGSize)frameForText:(NSString*)text sizeWithFont:(UIFont*)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode  {

    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraphStyle.lineBreakMode = lineBreakMode;

    NSDictionary * attributes = @{NSFontAttributeName:font,
                                  NSParagraphStyleAttributeName:paragraphStyle
                                  };


    CGRect textRect = [text boundingRectWithSize:size
                                         options:NSStringDrawingUsesLineFragmentOrigin
                                      attributes:attributes
                                         context:nil];
    return textRect.size;
}
然后将代码更改为:

CGSize detailsLabelSize = [self frameForText:detailsLabel.text sizeWithFont:detailsLabel.font constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];

它会抛出什么错误?@Sebydd标题中的那一个你是从哪里得到“maxSize”的?在那一行之前的一行,让我补充一下,你在运行时收到它了吗?是的,我认为类似的东西至少我没有像我认为的jaja那样迷失,但我不知道如何解决它,对不起,我对Objective-C:C太陌生了,有什么建议吗?
-(CGSize)frameForText:(NSString*)text sizeWithFont:(UIFont*)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode  {

    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraphStyle.lineBreakMode = lineBreakMode;

    NSDictionary * attributes = @{NSFontAttributeName:font,
                                  NSParagraphStyleAttributeName:paragraphStyle
                                  };


    CGRect textRect = [text boundingRectWithSize:size
                                         options:NSStringDrawingUsesLineFragmentOrigin
                                      attributes:attributes
                                         context:nil];
    return textRect.size;
}
CGSize detailsLabelSize = [self frameForText:detailsLabel.text sizeWithFont:detailsLabel.font constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];