将论据传递给UILabel [2] *

时间:2012-10-12 09:25:06

标签: objective-c xcode arguments uilabel

我正在尝试从viewcontroller类调用下面的方法(Scroll animation class)类型。

-(void)CreateLabel:(CGRect )frame andLabel:(UILabel *[NUM_LABELS])label andview:(UIView *)view;

我尝试传递参数时遇到了一些错误。关于如何调用这个的任何建议?

这就是我调用该方法的方法

ScrollAnimation *newAnimation = [[ScrollAnimation alloc] init];
[newAnimation CreateLabel:CGRectMake(0, 50, 300,30) andLabel:animateLabel[NUM_LABELS] andview:self.view];

我有错误

 /Volumes/Red Drive/CarTransition/CarTransition/ViewController.m:120:66: Implicit conversion of an Objective-C pointer to 'UILabel **' is disallowed with ARC 


 /Volumes/Red Drive/CarTransition/CarTransition/ViewController.m:120:66: Incompatible pointer types sending 'UILabel *__strong' to parameter of type 'UILabel **'

创建标签方法:

  -(void)CreateLabel:(CGRect )frame andLabel:(UILabel *[NUM_LABELS])label andview:(UIView *)view{
for (int i = 0; i<NUM_LABELS ; i++){

    if(i == 0){
        label[0] = [[UILabel alloc] initWithFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.width,frame.size.height)];
        label[i].text = @"MINI ";
    }else if(i == 1){
        label[1] = [[UILabel alloc] initWithFrame:CGRectMake(frame.origin.x, frame.origin.y - 40 ,frame.size.width, frame.size.height)];
        label[1].text = @"COOPER ";
    }else if(i == 2){
        label[2] = [[UILabel alloc] initWithFrame:CGRectMake(frame.origin.x, frame.origin.x-120 ,frame.size.width,frame.size.height)];
        label[2].text = @"STYLING";
    }
}

1 个答案:

答案 0 :(得分:0)

你的方法是询问一个指针数组。

这是一个肮脏的例子:

- (void)passArgument:(NSObject *[])anObject total:(uint)total{
    for (int i = 0; i < total; i++) {
        NSLog(@"list --> %@", anObject[i]);
    }
}

现在来电:

NSString* object[5] = {@"a", @"b", @"c", @"d", @"e"};
[self passArgument: object total: 5];
[self passArgument: &object[2] total: 3];
  1. 注意:object是一个指针数组,(*)
  2. &amp; object [2]是指针的地址(&amp; **)
  3. object [1]是指向指针(**)的指针,这不是你的指针 想