2009-07-14 4 views
2

ich einige Objective-C-Code zu schreiben, und ich kann nicht herausfinden, warum das nicht funktioniert:Fehler: inkompatible Typen in Zuordnung

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 ist ein CGRect als Instanzvariable in meiner Klasse definiert, und button ist eine UIButton, die auch als Instanzvariable definiert ist. Warum funktioniert das nicht? Meine Header-Datei:

// 
// 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

Kopieren Sie die Deklaration von buttonRect und fügen Sie sie ein. – Chuck

Antwort

8

buttonRect als CGRect * erklärt - das heißt, ein Zeiger zu einem CGRect. Entfernen Sie den Splat und alles wird gut.

+1

Das hat funktioniert. Wie könnte ich etwas so einfaches vermissen? * schmatzt Stirn * – RCIX

+0

guter Fang! leicht zu übersehen, sehr einfach. –

+0

Ich habe es dir gesagt;) – IlDan

0

Ist buttonRect an anderer Stelle definiert oder haben Sie eine Art geben müssen, wenn Sie es definieren?

+0

Es ist eine Instanzvariable in der Klasse, die ich verwende. – RCIX

+0

Wie ist es dort definiert? Nur so sehen wir alle Infos. –

1

Überprüfen Sie, ob buttonRect: sicher ist, dass es nicht als CGRect definiert ist.

+0

Nein, ist es. Ich habe mich dreifach davon überzeugt. – RCIX