0

我正在尝试从 viewcontroller 类调用以下(滚动动画类)类型的方法。

-(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";
    }
}
4

1 回答 1

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. &object[2] 是指针的地址 (&**)
  3. object[1] 是指向指针 (**) 的指针,这不是您想要的
于 2012-10-12T10:03:12.087 回答