CGFloat错误的包装器

时间:2015-07-31 12:54:02

标签: ios objective-c cgfloat

在我的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”

2 个答案:

答案 0 :(得分:1)

在这种情况下,如果您将签名更改为:

,则可以返回CGFloat本身。
+ (CGFloat)pointData {

如果您不想返回变量,可能需要CGFloat *(可能因为您实际需要操作多个变量):

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

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

答案 1 :(得分:1)

你可以尝试

+(CGFloat)pointData{

    //Your code
}

希望它有所帮助。