gpt4 book ai didi

iphone - 即使使用 ARC,SKProductsRequest 仍被释放?

转载 作者:行者123 更新时间:2023-12-03 19:39:02 30 4
gpt4 key购买 nike

我正在尝试设置 SKProductsRequest,但不断收到错误 EXC_BAD_ACCESS。我知道这与 ARC 有关。在我的 .h 文件中,我有 SKProductsRequestDelegate。

这些是我的 .m 文件中的主要函数:

- (void)requestProUpgradeProductData {
NSSet *productIdentifiers = [NSSet setWithObject:kInAppPurchaseProUpgradeProductId];
productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
productsRequest.delegate = self;
[productsRequest start];
}

#pragma mark -
#pragma mark SKProductsRequestDelegate methods

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSArray *products = response.products;
//proUpgradeProduct = [products count] == 1 ? [products firstObject] : nil;
proUpgradeProduct = [products objectAtIndex:0];
if (proUpgradeProduct) {
NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
NSLog(@"Product price: %@" , proUpgradeProduct.price);
NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
}

for (NSString *invalidProductId in response.invalidProductIdentifiers) {
NSLog(@"Invalid product id: %@" , invalidProductId);
}

// finally release the reqest we alloc/init’ed in requestProUpgradeProductData
productsRequest = nil;

[self purchaseProUpgrade];

[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
}

当我启用 NSZombieEnabled 时,我得到的是:"-[InAppPurchaseManager respondsToSelector:]: 消息发送到已释放的实例。"

任何帮助将不胜感激。谢谢!

最佳答案

我终于明白了!关键是当你综合变量时,一定要这样做:

@synthesize productsRequest = _productsRequest;

在 .h 中,它应该如下所示:

@property (nonatomic, strong) SKProductsRequest *productsRequest;

在 .m 中,请确保使用“self”。使用产品时请求:

self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
self.productsRequest.delegate = self;
[self.productsRequest start];

给你!

关于iphone - 即使使用 ARC,SKProductsRequest 仍被释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9765152/

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