跳转到方法的特定部分而不会丢失其值

时间:2017-01-23 08:08:03

标签: objective-c xcode goto

我在senerio之下 类aviewcontroller调用函数

  [  -(void)methodA:(NSString*)parameter1 withParam:(NSString*)param2]

的NSObject类型类functionClass,其中我编写了我的代码,从aviewcontroller我传递参数。

我想要的是什么:if my param2 == hello1然后在functionClass中生成一个随机数,然后它将调用相同的

   [ -(void)methodA:(NSString*)parameter1 withParam:(NSString*)param2]

再次发挥作用

//我的主要类aviewcontroller

-(void)viewdidload
{

    functionClass *obj = [[functionClass alloc] init];
     [obj methodA:@"hello" withParam:@"Hello1"];
}

//我的班级名称:NSObject类型的functionClass

//Method A

-(void)methodA:(NSString*)parameter1 withParam:(NSString*)param2

{

//Label A

NSLog(@"value of parameter1 =%@", parameter1);
NSLog(@"value of param2 =%@", param2);
/
if([param2 isEqualtostring:@"hello1"])
   {

    NSString *newparamgenerate=[self generateRandomNumber];
    //here need to go to label A with replace parameter value of param2      with newparamgenerate and then execute the code in same flow;


    }


}



//method 2

-(NSString*) generateRandomNumber
 {

NSString*random=@"TESTRANDOM";

return random;
}

1 个答案:

答案 0 :(得分:1)

为了在生成数字后再次重复代码,您只需要使用new参数重新调用该方法。你有一个if语句,它将控制流并防止无限循环,所以在这种情况下调用一个方法本身就没有害处,只要方法random不能返回它'hello1'它不能。工作代码如下所示:

//Method A

-(void)methodA:(NSString*)parameter1 withParam:(NSString*)param2

{

//Label A

NSLog(@"value of parameter1 =%@", parameter1);
NSLog(@"value of param2 =%@", param2);
/
if([param2 isEqualtostring:@"hello1"])
   {

    NSString *newparamgenerate=[self generateRandomNumber];
    [self methodA: @"hello" withParam: newparamgenerate];
    return
    //here need to go to label A with replace parameter value of param2      with newparamgenerate and then execute the code in same flow;


    }


}



//method 2

-(NSString*) generateRandomNumber
 {

NSString*random=@"TESTRANDOM";

return random;
}

您的代码格式在某些地方有点可疑,因此我建议您研究并采用Objective-C格式化最佳实践。