使用GCRectMake的iOS错误 - 将'int'发送到不兼容类型'CGRect'(又名'struct CGRect')的参数

时间:2012-12-27 17:03:32

标签: objective-c ios uiviewcontroller cgrectmake

我是iOS编程的新手。

我正在关注一本指南,这本书正是在意大利语的iOS上。 对于第一个应用程序,我必须像这样修改ViewController.m

#import "ViewController.h"

@implementation ViewController

- (void)didReceiveMemoryWarning{
    [super didReceiveMemoryWarning];
    // Release Any chached data, images, etc that aren't in use.
}    

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)datiDettaglioChiudi:(datiDettaglio *)controller{
    //altre operazioni possibii dopo la dismissModal
    NSLog(@"... di ritorno dal DismissModal...");
    [controller dismissViewControllerAnimated:YES completion:nil];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"dettaglio"]){
        datiDettaglio *mioController1 = segue.destinationViewController;
        [mioController1 setDelegate:self];
        //aggiunta di una UILabel - qui è possibile personalizzare la propria vista     direttamente da codice
        UILabel *testLabel = [[UILabel alloc] initWithFrame: GCRectMake(30,100,250,40)];
        [testLabel setText:@"Etichetta di test"];
        [testLabel setBackgroundColor:[UIColor greenColor]];
        [testLabel setTextColor:[UIColor blackColor]];
        [mioController1.view addSubview:testLabel];

    }
}

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
}


@end

问题在于:

UILabel *testLabel = [[UILabel alloc] initWithFrame: GCRectMake(30,100,250,40)];

GCRectMake:我有一个警告和一个错误:

WARNING Implicit declaration of function 'GCRectMake' is invalid in C99
ERROR   Sending 'int' to parameter of incompatible type 'CGRect' (aka 'struct CGRect')

我真的无法理解出了什么问题。

2 个答案:

答案 0 :(得分:12)

它是CGRectMake,而不是GCRectMake。 CG代表Core Graphics。

答案 1 :(得分:0)

这(除了我的评论)应该修复错误

 UILabel *testLabel = [[UILabel alloc] initWithFrame: CGRectMake(30.0f,100.0f,250.0f,40.0f)];