ios – 不兼容的指针类型将类型为’float [2]’的可保留参数传递给CF函数,期望’const CGFloat *'(又名’const double *’)类型

ios – 不兼容的指针类型将类型为’float [2]’的可保留参数传递给CF函数,期望’const CGFloat *'(又名’const double *’)类型,第1张

概述我收到这个错误,我在arm64下编译出现了这个错误: CGContextSetLineDash(line, 0, lengths, 1); //画虚线 我该如何解决这个问题? - (id)initDashLineWithFrame:(CGRect)frame{ UIImageView *imageView1 = [[UIImageView alloc]initWithFrame:fram 我收到这个错误,我在arm64下编译出现了这个错误:

CGContextSetlineDash(line,lengths,1);  //画虚线

我该如何解决这个问题?

- (ID)initDashlineWithFrame:(CGRect)frame{    UIImageVIEw *imageVIEw1 = [[UIImageVIEw alloc]initWithFrame:frame];    UIGraphicsBeginImageContext(imageVIEw1.frame.size);   //开始画线    [imageVIEw1.image drawInRect:CGRectMake(0,imageVIEw1.frame.size.wIDth,imageVIEw1.frame.size.height)];    CGContextSetlineCap(UIGraphicsGetCurrentContext(),kCGlineCapRound);  //设置线条终点形状    float lengths[] = {4,5};    CGContextRef line = UIGraphicsGetCurrentContext();    UIcolor *coloreline = [UIcolor colorWithRed:156/255.0 green:156/255.0 blue:156/255.0 Alpha:1];//r(156,156,1);    CGContextSetstrokecolorWithcolor(line,coloreline.CGcolor);    CGContextSetlineDash(line,1);  //画虚线    CGContextMovetoPoint(line,0.0,5.0);    //开始画线    CGContextAddlinetoPoint(line,310.0,5.0);    CGContextstrokePath(line);    imageVIEw1.image = UIGraphicsGetimageFromCurrentimageContext();    return imageVIEw1;}
解决方法 在64位体系结构(如arm64)上,CGfloat被定义为double,因此是a
8字节浮点数,而float是4字节浮点数.因此,您无法传递float []数组
期望CGfloat []数组的函数.

将阵列更改为

CGfloat lengths[] = {4,5};

应该解决问题.

总结

以上是内存溢出为你收集整理的ios – 不兼容指针类型将类型为’float [2]’的可保留参数传递给CF函数,期望’const CGFloat *'(又名’const double *’)类型全部内容,希望文章能够帮你解决ios – 不兼容的指针类型将类型为’float [2]’的可保留参数传递给CF函数,期望’const CGFloat *'(又名’const double *’)类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1003393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存