gpt4 book ai didi

获取 IAP 产品响应后的 Objective-C 错误

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:00 24 4
gpt4 key购买 nike

此代码来自 Phonegap 代码:IAP 插件。错误发生在“发送的 js”之后的代码行。除了最后一个 'nil' 之外,所有发送给函数的元素都是非 nil 的。我什至将它们注销以确保它们已发送。这段代码就在插件 ( https://github.com/usmart/InAppPurchaseManager-EXAMPLE ) 之外,除了日志记录之外没有被修改。在调试器中,我看到没有一个对象是 nil,所以我不明白为什么会发生错误。

这里是错误:

[__NSArrayI JSONRepresentation]: unrecognized selector sent to instance 0xdc542d0 2013-02-13 23:26:17.209 GoblinSlots[4519:707] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI JSONRepresentation]: unrecognized selector sent to instance 0xdc542d0'

代码如下:

      - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:   (SKProductsResponse *)response
{
NSLog(@"got iap product response");
for (SKProduct *product in response.products) {
NSLog(@"sending js for %@", product.productIdentifier);
NSLog(@" title %@", product.localizedTitle );
NSLog(@" desc%@ - %@", product.localizedDescription, product.localizedPrice );


NSArray *callbackArgs = [NSArray arrayWithObjects:
NILABLE(product.productIdentifier),
NILABLE(product.localizedTitle),
NILABLE(product.localizedDescription),
NILABLE(product.localizedPrice),
nil ];
NSLog(@"sent js");

NSString *js = [NSString stringWithFormat:@"%@.apply(plugins.inAppPurchaseManager, %@)", successCallback, [callbackArgs JSONSerialize]];
NSLog(@"js: %@", js);
[command writeJavascript: js];
}

最佳答案

进行 JSON 序列化的所有内容似乎都已包含在 Cordova 插件中。无需下载和安装另一个 JSON 库。 (a)

PhoneGap 似乎正在从 SBJson 切换到 JSONKit。 (b)

PhoneGap 也在更改所有 JSON 方法以使用“cdvjk_”前缀。 (c)

据我所知,在这些更改过程中有些地方不太对劲。我所做的是编辑文件 Plugins/InAppPurchaseManager.m ,我在其中进行了以下更改:

  • 添加行

#import <Cordova/CDVJSON.h>

  • 替换行

return [self respondsToSelector:@selector(cdvjk_JSONString)] ? [self cdvjk_JSONString] : [self cdvjk_JSONRepresentation];

return [self JSONString];

. (将此错误或更好的错误修复推回给好心的 PhoneGap 人员的正确方法是什么?)

关于获取 IAP 产品响应后的 Objective-C 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com