Objective-C
ve C
kodunu aynı sınıfta uygulayan iOS
projemde Objective-C
sınıfım var. Uzantıyı .mm
olarak değiştirdim ve bu bölüm iyi gidiyor. Şimdi aynı sınıfta Objective-C
yöntemini çağıran bir C
yöntemini ayarlamak istiyorum. Benim aldığım sorun, C
yönteminden self
'u aramaya çalıştığım zamandı.C yönteminden Objective-C "self" nasıl çağrılır
void SetNotificationListeners(){
[self fireSpeechRecognition];
}
hatadır:
Use of undeclared identifier 'self'
bunu nasıl yönetebilir İşte kodudur?
void SetNotificationListeners(void *myObj){
[(MyClass*)myObj fireSpeechRecognition];
}
//in objC
SetNotificationListeners(self);
veya referansı
//global variable
static MyClass *myObj;
//in obj c
myObj = self;
SetNotificationListeners(); //use myObj instead of self in function
ilk Bence iyidir tutan bir küresel değişkeni vardır:
Bu iOS değil, IOS. Her neyse, niçin “self” 'in sınıfa ** değil ** bir işlevin içinden erişilebilir olmasını beklersiniz? Bu sadece mantıklı değil. Örnekte (nesne) argüman olarak geçmeniz gerekir. –
Objective-C ve C kullanırken (C++) belirtmediğinizde, uzantıyı neden .mm olarak değiştirdiniz? – trojanfoe