我有一個問題,我解決不了,而且我卡住了。應用內購買適用於iOS 3和5,但不適用於iOS 4
我已經實現了一個應用程序內購買屏幕,問題是,當我在iOS3.1.3上檢查它時,它在iOS5模擬器上也可以完美工作,但是當使用iOS4時,我不會在響應中獲得產品,
我使用的相關代碼:
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
if ([response.products count]==0) {
// Always gets in here on iOS4....
}else{
//get here on 3.1.3 or 5
[productDetailsList addObjectsFromArray: response.products];
}
....
[request release];
}
- (void)requestProductData {
for (short item_count = 1; item_count <=4 ; item_count++) {
[productIdentifierList addObject:[NSString stringWithFormat:@"myApp.item.%d", item_count]];
}
SKProductsRequest *request = [[[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifierList]] retain];
request.delegate = self;
[request start];
}
.h文件看起來是這樣的:
#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h>
@interface viewController : UIViewController
<SKProductsRequestDelegate, SKPaymentTransactionObserver> {
NSMutableArray *productIdentifierList;
NSMutableArray *productDetailsList;
NSMutableArray *transactionHistory;
}
@property (nonatomic, retain) NSMutableArray *productIdentifierList;
@property (nonatomic, retain) NSMutableArray *productDetailsList;
@property (nonatomic, retain) NSMutableArray *transactionHistory;
- (void)requestProductData;
- (void)completeTransaction: (SKPaymentTransaction *)transaction;
- (void)restoreTransaction: (SKPaymentTransaction *)transaction;
- (void)failedTransaction: (SKPaymentTransaction *)transaction;
- (void)recordTransaction: (SKPaymentTransaction *)transaction;
- (void)provideContent: (NSString *)productIdentifier;
@end
我已努力使從頭開始的所有規定,並且沒有資源問題不在於,也許這與內存管理有關,但我無法弄清楚。
奇怪的是它適用於我的3.1.3而不是4.2.1。
請幫助...
我還嘗試製作新的配置文件,並啓用了應用內功能。沒有用! 請儘量幫忙。 – user1020875
我認爲這可能與prev有關。版!我也必須安裝prev。在使用storekit安裝新程序之前,我的程序的版本。 (在這種情況下,以前的版本意味着Storekit版本實施之前的版本) – NicTesla