【问题标题】:SKProductsRequest message sent to deallocated instanceSKProductsRequest 消息发送到解除分配的实例
【发布时间】:2014-11-25 19:56:57
【问题描述】:

我遇到了很多类似的问题,尝试了所有方法,但无法正常工作。有人可以帮我吗?

我的代码:

    @implementation DSInAppSubscriptionManager

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


- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
    NSArray *products = response.products;
    proUpgradeProduct = [products count] == 1 ? [products firstObject] : nil;
    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);
    }

}

-(void)requestDidFinish:(SKRequest *)request{
    NSLog(@"finished");
}
-(void)request:(SKRequest *)request didFailWithError:(NSError *)error{
    NSLog(@"fail");
}

//-(void)dealloc{
//    self.productsRequest.delegate = nil;
//    [self.productsRequest cancel];
//    self.productsRequest = nil;
//}

@end

现在...随着 dealloc 的评论,它给了我这样的信息: *** -[DSInAppSubscriptionManager 保留]:消息发送到已释放实例 0x18742450

如果我取消注释 dealloc 方法,它不会显示该消息,但不会调用任何委托。

我从 ViewController 调用 requestProUpgradeProductData 方法。

【问题讨论】:

  • 您的 DSInAppSubscriptionManager 似乎在请求完成之前被释放。什么时候解除分配?

标签: ios objective-c xcode


【解决方案1】:

我找到了答案...我在我的 viewController 中将这个类 (DSInAppSubscriptionManager) 实例化为一个弱对象...所以当它调用委托时它已经被释放...我的错误...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-11
    • 2013-06-04
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多