Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 应用程序内采购实现中的错误objective-c_Iphone_Objective C_Xcode_In App Purchase - Fatal编程技术网

Iphone 应用程序内采购实现中的错误objective-c

Iphone 应用程序内采购实现中的错误objective-c,iphone,objective-c,xcode,in-app-purchase,Iphone,Objective C,Xcode,In App Purchase,我正在实施应用内购买,我不是一个非常有经验的开发人员。 我正在使用我在这里找到的布兰特·特洛伊教程: 我在loadStore方法实现中遇到错误: 正在向不兼容类型“id”的参数发送“InAppPurchaseManager*const\u strong” // // InAppPurchaseManager.h // #import <Foundation/Foundation.h> #import <StoreKit/StoreKit.h> @interface

我正在实施应用内购买,我不是一个非常有经验的开发人员。 我正在使用我在这里找到的布兰特·特洛伊教程:

我在loadStore方法实现中遇到错误: 正在向不兼容类型“id”的参数发送“InAppPurchaseManager*const\u strong”

//
//  InAppPurchaseManager.h
//

#import <Foundation/Foundation.h>
#import <StoreKit/StoreKit.h>

@interface InAppPurchaseManager : NSObject <SKProductsRequestDelegate>
{
    SKProduct *proUpgradeProduct;
    SKProductsRequest *productsRequest;
}

// public methods
- (void)loadStore;
- (BOOL)canMakePurchases;
- (void)purchaseProUpgrade;

@end

---

#import "InAppPurchaseManager.h"

#define kInAppPurchaseProUpgradeProductId @"com.user.app.product"

@implementation InAppPurchaseManager

- (void)loadStore
{
    // restarts any purchases if they were interrupted last time the app was open

    [[SKPaymentQueue defaultQueue] addTransactionObserver: self];
ERROR HERE: Sending 'InAppPurchaseManager *const __strong' to parameter of incompatible type 'id<SKPaymentTransactionObserver>'

    // get the product description (defined in early sections)
    [self requestProUpgradeProductData];
}

@end
//
//InAppPurchaseManager.h
//
#进口
#进口
@AppPurchaseManager中的接口:NSObject
{
SKProduct*升级产品;
SKProductsRequest*productsRequest;
}
//公共方法
-(作废)装货仓库;
-(BOOL)可以进行购买;
-(作废)purchaseProUpgrade;
@结束
---
#导入“InAppPurchaseManager.h”
#定义kInAppPurchaseProUpgradeProductId@“com.user.app.product”
@应用程序采购管理器中的实现
-(作废)装货仓库
{
//如果上次应用程序打开时被中断,则重新启动任何购买
[[SKPaymentQueue defaultQueue]addTransactionObserver:self];
此处错误:正在将“InAppPurchaseManager*const\u strong”发送到不兼容类型“id”的参数
//获取产品描述(在前面的部分中定义)
[自我请求ProUpgradeProductData];
}
@结束

有人能帮我吗?

您需要声明
InAppPurchaseManager
符合
SKPaymentTransactionObserver
协议。

答案正如kperryua所说,但只是为了说明:

@interface InAppPurchaseManager : NSObject <SKProductsRequestDelegate,SKPaymentTransactionObserver>
{
SKProduct *proUpgradeProduct;
SKProductsRequest *productsRequest;
}

// public methods
- (void)loadStore;
- (BOOL)canMakePurchases;
- (void)purchaseProUpgrade;

@end
应用程序采购管理器中的界面:NSObject { SKProduct*升级产品; SKProductsRequest*productsRequest; } //公共方法 -(作废)装货仓库; -(BOOL)可以进行购买; -(作废)purchaseProUpgrade; @结束
它应该很好用。

ooh不,我以前做过。现在它工作了。非常感谢。