Вызов переменных из класса C ++ в класс Objective C - PullRequest
1 голос
/ 13 марта 2011

Я создаю экземпляр класса Objective C из экземпляра C ++.Проблема в том, что при попытке получить значения некоторых переменных (в экземпляре obj c) я всегда получаю 0. Некоторые NSLogs также игнорируются!:

Класс Objective C: InAppPurchaseManager.h

@interface InAppPurchaseManager : NSObject <SKProductsRequestDelegate, SKPaymentTransactionObserver>{
    SKProduct *proUpgradeProduct;
    SKProductsRequest *productsRequest;
@public
    int finishedPurchaseProcess;
}
- (int)hasFinishedPurchaseProcess;
- (void)purchase;
@end

InAppPurchaseManager.m

@implementation InAppPurchaseManager
- (void)purchase{
    finishedPurchaseProcess=1;
}
- (int)hasFinishedPurchaseProcess{
    NSLog(@"STORE: HELLO THERE");   
    return finishedPurchaseProcess;
}

testApp.h класс testApp: public ofxiPhoneApp {public: void goToStoreFromMenu ();void checkPurchase ();InAppPurchaseManager * theStore;}

testApp.mm

// First I call ghis function
void testApp::goToStoreFromMenu(){  
    InAppPurchaseManager* theStore = [[InAppPurchaseManager alloc] init];
    [theStore purchase];
}

// And then this function
void testApp::checkPurchase(){  
    cout << "Finished? " << [theStore hasFinishedPurchaseProcess] << "\n";
}

и результат всегда Готово?0 , даже если я установлю его на 1 в покупки .Также NSLog (@ "STORE: HELLO THERE"); игнорируется

Я не понимаю, что происходит

1 Ответ

1 голос
/ 13 марта 2011

В goToStoreFromMenu вы объявляете новую локальную переменную с именем theStore. В checkPurchase вы ссылаетесь на некоторую переменную other с тем же именем. Функция goToStoreFromMenu инициализирует локальную переменную, которая выходит из области видимости в конце функции. Вам нужно инициализировать ту же переменную, на которую вы в конечном итоге будете ссылаться в checkPurchase.

...