Ошибка: несовместимые типы в присваивании - PullRequest
2 голосов
/ 14 июля 2009

Я пишу некоторый код объективного 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

Ответы [ 3 ]

8 голосов
/ 14 июля 2009

buttonRect объявляется как CGRect * - то есть указатель на CGRect. Снимите сплат и все будет хорошо.

1 голос
/ 14 июля 2009

Двойная проверка buttonRect: уверен, что он не определен как CGRect.

0 голосов
/ 14 июля 2009

Определяется ли buttonRect в другом месте, или вам нужно указать его тип при определении?

...