2009-07-14 3 views
2

Я пишу некоторые 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 определяется как переменный экземпляр в моем классе, и кнопка 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

Скопируйте и вставьте объявление buttonRect. – Chuck

ответ

8

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

+1

Это сработало. Как я мог пропустить что-то настолько простое? * удары лба * – RCIX

+0

хорошо поймите! легко заметить, очень легко. –

+0

Я же сказал тебе;) – IlDan

0

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

+0

Его переменная экземпляра в классе, который я использую. – RCIX

+0

как там определяется? Только так мы видим всю информацию. –

1

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

+0

Нет, это так. Я сделал это втрое. – RCIX

Смежные вопросы