CGFloat 错误的包装器

Wrapper for CGFloat Error

在我的 CGFloat 包装器中出现错误 Returning CGFloat (aka Double) from a function result type CGfloat aka double take the address with &

+(CGFloat*)pointData;

//

+(CGFloat *)pointData{


    NSInteger savedInt = [[NSUserDefaults standardUserDefaults] integerForKey:@"savedPointForText"];
    CGFloat textPoint = (CGFloat)savedInt;

    if(textPoint <1) {

        textPoint = 18.0;
    }


    return textPoint;
}

如果我这样做 return &textPoint; 我会收到一条警告,返回带有局部变量 "textpoint" 的堆栈内存地址

在这种情况下,您可以 return CGFloat 本身,如果您将签名更改为:

+ (CGFloat)pointData {

你需要 CGFloat * 以防你不想 return 变量(可能是因为你实际上需要操作多个变量):

+ (void)changePointData:(CGFloat *)pointData {
    NSInteger savedInt = [[NSUserDefaults standardUserDefaults] integerForKey:@"savedPointForText"];
    *pointData = (CGFloat)savedInt;

    if (*pointData < 1) {    
        *pointData = 18.0;
    }
}

你可以试试

+(CGFloat)pointData{

    //Your code
}

希望对您有所帮助。