我正在编写一些Objective-C代码,我无法弄清楚为什么这不起作用:
buttonRect = CGRectMake(0,0,100.0,100.0);//error:incompatible types in assignment
CGRect newFrame = CGRectInset(buttonRect, -0.2, -0.2);//error:incompatible type for argument 1 of CGRectInset
button.frame = newFrame;
buttonRect是一个CGRect,在我的类中定义为一个实例变量,而button是一个UIButton,也被定义为一个实例变量。为什么这不起作用? 我的头文件:
//
// MyViewController.h
// HelloWorld
//
// Created by RCIX on 7/10/09.
// Copyright 2009 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface MyViewController : UIViewController {
UITextField *textField;
UILabel *label;
NSString *string;
UIButton *button;
CGRect *buttonRect;
}
@property (nonatomic, assign) CGRect *buttonRect;
@property (nonatomic, retain) IBOutlet UITextField *textField;
@property (nonatomic, retain) IBOutlet UILabel *label;
@property (nonatomic, retain) IBOutlet UIButton *button;
@property (nonatomic, retain) NSString *string;
- (IBAction)helloButtonDown:(id)sender;
- (IBAction)helloButtonUp:(id)sender;
@end
答案 0 :(得分:8)
buttonRect
被声明为CGRect *
- 即CGRect的指针。移除啪啪声,一切都会好的。
答案 1 :(得分:1)
仔细检查buttonRect:确定它没有被定义为CGRect。
答案 2 :(得分:0)
buttonRect是在其他地方定义的,还是在定义时需要给它一个类型?