2017-01-23 2 views
0

Ich habe unter senerio Klasse eine Funktion aviewcontroller zu nennenWechseln zu bestimmten Teil eines Verfahrens, ohne ihre Werte zu verlieren

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

von NSObject Typklasse functionClass, wo ich meinen Code geschrieben haben, von aviewcontroller i Parameter am Übergang in es.

, was ich will: if my param2 == hello1 dann innerhalb functionClass eine Zufallszahl generiert und dann wird es das gleiche

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

Funktion wieder

// Meine Hauptklasse nennen aviewcontroller

-(void)viewdidload 
{ 

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

// Mein Klassenname: functionClass vom Typ NSObject

//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*[email protected]"TESTRANDOM"; 

return random; 
} 

Antwort

1

Um den Code erneut zu wiederholen, sobald Sie Ihre Nummer generiert haben, würden Sie müssen einfach nur die Methode mit dem neuen Parameter erneut aufrufen. Sie haben dort eine if-Anweisung, die den Fluss steuert und eine Endlosschleife verhindert, so dass es keinen Schaden in diesem Fall gibt, eine Methode von sich selbst aufzurufen, solange die Methode random nicht 'hello1' zurückgeben kann, was nicht möglich ist. Arbeits Code würde wie folgt aussehen:

//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*[email protected]"TESTRANDOM"; 

return random; 
} 

Die Formatierung des Codes ist ein wenig fragwürdig an Orten, so würde ich Ihnen raten, zu erforschen und an Bord nehmen Objective-C Formatierung Best Practices.

+0

danke jacob, eigentlich ist es eine senerio von einer der anforderungen meines kunden. | – iphonemaclover

Verwandte Themen