Diego
Diego

Reputation: 1

Incompatible pointer types xcode 8

Hello Having some issue with my code.
Please dont judge, first time trying to figure out some errors. Im receiving a "incompatible pointer types sending 'UIFount*'to parameter of type 'NSDictionary*_Nullable'"

Here is the code. any help is appreciated...

// Entirely cover the parent view
UIView *parent = self.superview;
if (parent) {
    self.frame = parent.bounds;
}
CGRect bounds = self.bounds;

// Determine the total widt and height needed
CGFloat maxWidth = bounds.size.width - 4 * margin;
CGSize totalSize = CGSizeZero;

CGRect indicatorF = indicator.bounds;
indicatorF.size.width = MIN(indicatorF.size.width, maxWidth);
totalSize.width = MAX(totalSize.width, indicatorF.size.width);
totalSize.height += indicatorF.size.height;

//**Issue is HERE**
CGSize labelSize = [label.text sizeWithAttributes: label.font];
labelSize.width = MIN(labelSize.width, maxWidth);
totalSize.width = MAX(totalSize.width, labelSize.width);
totalSize.height += labelSize.height;
if (labelSize.height > 0.f && indicatorF.size.height > 0.f) {
    totalSize.height += kPadding;
}

CGFloat remainingHeight = bounds.size.height - totalSize.height - kPadding - 4 * margin;
CGSize maxSize = CGSizeMake(maxWidth, remainingHeight);
CGSize detailsLabelSize = [detailsLabel.text sizeWithAttributes: detailsLabel.font
                            constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];
totalSize.width = MAX(totalSize.width, detailsLabelSize.width);
totalSize.height += detailsLabelSize.height;
if (detailsLabelSize.height > 0.f && (indicatorF.size.height > 0.f || labelSize.height > 0.f)) {
    totalSize.height += kPadding;
}

totalSize.width += 2 * margin;
totalSize.height += 2 * margin;

Upvotes: 0

Views: 91

Answers (1)

Rajat
Rajat

Reputation: 11127

sizeWithAttribute expect a NSDictionary and you are passing UIFont in it, that's why you are getting this warning, make a dictionary like this

NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"YourFontName" size:YourFontSize]};

And then pass this attributes dictionary

CGSize labelSize = [label.text sizeWithAttributes: attributes];

Upvotes: 1

Related Questions