首页 > 解决方案 > ARC 不允许将“int”隐式转换为“UILabel *”

问题描述

我在下面的代码中收到编译错误“ARC 不允许将 'int' 隐式转换为 'UILabel *'”。

UILabel* (^makeLabel)(CGFloat, CGFloat, CGFloat, CGFloat, NSString*) = ^(CGFloat x, CGFloat y, CGFloat w, CGFloat h, NSString* title) {
    UILabel* label = [[UILabel alloc] init];
    label.frame = CGRectMake(x, y, w, h);
    label.text = title;
    label.font = [UIFont systemFontOfSize:14];
    return label;
};

UILabel* lblEmail = mekeLabel(30, 100, 100, 30, @"이메일");

我应该怎么做才能解决这个问题?

标签: objective-cobjective-c-blocks

解决方案


您的代码中有错字。你应该打电话makeLabel(30, 100, 100, 30, @"이메일");。您收到此错误的原因mekeLabel是被视为稍后声明的块。Objective-C 中int的块默认返回。


推荐阅读