这是我的方法createNewRectangleWithHeight
,参数是heightParam和widthParam。我的问题是我不能在方法中使用参数。
我收到了一个类似的错误
错误的接收器类型"NSUInteger*"(也称为"unsigned int*")
-(BOOL)createNewRectangleWithHeight:(NSUInteger *)heightParam width:(NSUInteger *)widthParam{
if ([[heightParam length] == 0] || [widthParam length]==0]) {
NSLog(@"The height and width must no be 0");
}
}
如果条件
只能调用对象上的方法。指向unsigned int
的指针不是对象;它只是一个数字的地址。
您不需要传递地址,除非您正在更改方法内部的值,并且您可以只检查值,而不是将数字视为对象。
-(BOOL)createNewRectangleWithHeight:(NSUInteger)heightParam width:(NSUInteger)widthParam {
if (heightParam == 0 || widthParam == 0) {
NSLog(@"The height and width must not be 0");
}
}
学习查看您收到的错误消息。在这种情况下,错误消息会告诉您到底出了什么问题。语法[object message]
正在向对象发送消息。NSInteger是标量类型,而不是对象类型。
顺便说一句,您的方法没有返回结果,并且名称不正确。它应该被称为类似heightAndWidthAreNotZero的东西。
其他人已经指出,应该使用(NSUInteger)
而不是(NSUInteger *)
作为参数类型。实际上,如果您准备创建CGRect,您可能应该使用CGFloat,而不是NSUInteger,因为CGRect的不同值是CGFloate类型。
最后,还有一个内置的系统函数CGRectIsEmpty(),它将CGRect作为输入,如果矩形为空,则返回TRUE;如果矩形不为空,返回FALSE。