gpt4 book ai didi

objective-c - 将值传递给方法参数以创建 CGRect

转载 作者:行者123 更新时间:2023-11-28 22:58:58 24 4
gpt4 key购买 nike

我是 Objective-C 的新手。我正在尝试编写一种方法,在其中创建一个包含特定大小的图像文件的 UIImageView。

这是我的方法:

- (void)setImageViewElements:(UIImageView *)imageViewName : (NSString *)imageName : (NSInteger )topX : (NSInteger )topY : (NSInteger )imageWidth : (NSInteger )imageHeight
{
imageViewName = [[UIImageView alloc] initWithFrame:CGRectMake(topX, topY, imageWidth, imageHeight)];
[imageViewName setImage:[UIImage imageNamed:imageName]];
[self.view addSubview:imageView];
}

Xcode 对该方法抛出此警告:“setImageViewElements:::::::”实现中的参数类型冲突:“CGFloat *”(又名“float *”)与“NSInteger”(又名“int”)

我想这样调用它:

[self setImageViewElements:myImageView :@"myImage.png" :150 :532 :112 :82];

Xcode 为调用抛出此警告:将“int”发送到“CGFloat *”类型的参数(又名“float *”)的指针转换不兼容的整数;

我已经尝试将参数更改为 float、CGFloat 和 int,但我得到了相同的错误变化。

如有任何帮助,我们将不胜感激。

谢谢莫里

最佳答案

“实现中的参数类型冲突...”表明 .h 文件中的方法签名与 .m 文件中的方法签名不匹配。也许您的 .h 仍然有使用 CGFloat 的旧版本?

作为附带建议,为什么不传入“更大”的对象和结构而不是单独的图像名称、x、y、宽度和高度参数?像这样的东西:

- (void) setImageViewElements:(UIImageView *)imageViewName
withImage:(UIImage *)image
inFrame:(CGRect)rect

你可以这样调用它:

[self setImageViewElements:myImageView
withImage:[UIImage imageNamed:@"myImage.png"]
inFrame:CGRectMake(150, 532, 112, 82)];

使用命名参数通常也被认为是一种很好的风格。

关于objective-c - 将值传递给方法参数以创建 CGRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10308574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com