2015-03-06 14 views

Trả lời

7

Tôi thấy, mã hoạt động với loại đồng bằng float. Và khi tôi truy nã đối với định nghĩa của CGFloat, tôi thấy điều này:

#if defined(__LP64__) && __LP64__ 
# define CGFLOAT_TYPE double 
# define CGFLOAT_IS_DOUBLE 1 
# define CGFLOAT_MIN DBL_MIN 
# define CGFLOAT_MAX DBL_MAX 
#else 
# define CGFLOAT_TYPE float 
# define CGFLOAT_IS_DOUBLE 0 
# define CGFLOAT_MIN FLT_MIN 
# define CGFLOAT_MAX FLT_MAX 
#endif 

typedef CGFLOAT_TYPE CGFloat; 

Vì vậy CGFloat tại là thực sự là một double, vì thế mà cảnh báo.

+0

làm thế nào để sửa chữa cảnh báo đó? – vinny

+2

Chỉ cần sử dụng 'fabs' thay vì' fabsf'. – zoul

+0

'CGFloat' vẫn là' float' nếu bạn đang biên soạn thiết bị 32 bit, bao gồm iPhone 5, iPhone 4s, iPad 2, ... – benzado

13

Bạn có thể sử dụng fabs thay vì fabsf.

Link

Các vấn đề liên quan