2012-04-07 15 views
2

Ich möchte eine Klassenmethode von einer Instanzmethode aufrufen, um ihren Rückgabewert zu verwenden.Aufruf einer Klassenmethode von einer Instanzmethode

Das ist meine Klassenmethode

+(double) minFMFrequency { 

    return 88.3; 
} 

und dies ist meine Instanz-Methode

-(void) chackFrequency { 

    switch (band) { 
     case 'F': 
      if (self.frequency > Value obtained from class method) 
       frequency=107.9; 
      break; 

     default: 
      break; 
    } 

} 

band und frequency Instanzvariablen sind.

+1

Sie wollen also, was wissen, anstelle von 'Wert von Klasse method' erhalten setzen? Was hast du probiert? –

+0

mögliche Duplikate von [Objective-c: Call-Klassenmethode innerhalb derselben Klasse] (http://stackoverflow.com/questions/7290156/objective-c-call-class-method-within-same-class) –

+0

Ich versuchte es selbst. minFMFrequency, [self minFMFrequency] –

Antwort

0

Dupe. Überprüfen Sie this.

Sie tun müssen: [[self class] ClassProperties]

So ... für Sie: innerhalb chackFrequency Sie [[self class] minFMFrequency] aufrufen können.

+0

wenn ich versuche, so bekomme ich diesen Fehler: Thread1: Signal SIGABRT –

12
+(void)classMethod 
{ 
    [self anotherClassMethod]; // in a class method, self refers to the class 
} 

-(void)instanceMethod 
{ 
    [self anotherInstanceMethod]; //in an instance method self refers to the object, or instance 

    [[self class] classMethod]; //to call a class method from an instance send the instance the class message 

} 

so in Ihrem Fall: [[self class] minFMFrequency];

+0

Wenn ich versuche, so bekomme ich diesen Fehler: Thread1: Signal SIGABRT –

+1

aber nicht wegen dieses Codes. Sie sollten eine neue Frage mit Ihrem Code und allen Fehlerinformationen posten. – vikingosegundo

Verwandte Themen