在我的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”
答案 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
}
希望它有所帮助。