2014-04-01 7 views
0

나는이 tutorial를 수행하기 위해 노력하고있어에서 찾을 수없는,하지만 라인 :대지 제품은 유형의 객체 SKProductsRequest

Property products not found on object of type 'SKProductsRequest *' 

이는 다음과 같습니다

int count = [response.products count]; 

이 오류를 받고 있어요 내 코드 :

-(id)init 
{ 

if (self = [super init]) { 

NSLog(@"game store loaded"); 
if ([SKPaymentQueue canMakePayments]) 
{ 
NSLog(@"can make payments"); 
SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:@"teste2"]]; 
//productsRequest.delegate = self; 
[productsRequest start]; 

//start Buying/buy button 
SKPayment *payment = [SKPayment paymentWithProductIdentifier:@"teste2"]; 
[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 
[[SKPaymentQueue defaultQueue] addPayment:payment]; 
} 
else { 
NSLog(@"Please enable In App Purchase in Settings"); 
} 
} 



return self; 

} 


-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse: (SKProductsRequest *)response { 
SKProduct *validProduct = nil; 
int count = [response.products count]; 
if (count > 0) { 
NSLog(@"%d products available", count); 
validProduct = [response.products objectAtIndex:0]; 
} else if (!validProduct) { 
NSLog(@"No products available"); 
} 

} 

-(void)paymentQueue:(SKProductQueue *)queue updatedTransactions:(NSArray *)transactions { 
for (SKPaymentTransaction *transaction in transactions) { 
switch (transaction.transactionState) { 
case SKPaymentTransactionStatePurchasing: 
//avisa usuario que o produto esta sendo comprado 
break; 
case SKPaymentTransactionStatePurchased: 
//faz alguma coisa quando o produto for comprado 

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
break; 
case SKPaymentTransactionStateRestored: 
[[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
break; 
case SKPaymentTransactionStateFailed: 
if (transaction.error.code != SKErrorPaymentCancelled) { 
NSLog(@"An Error Encoutered"); 
} 
[[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 

default: 
break; 
} 

} 

} 

@end 

답변

2

귀하의 방법 서명이 잘못, 그것은해야한다 :

,536,
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 

SKProductsResponse 일 때 응답 클래스를 SKProductsRequest으로 지정했습니다.