0

我正在使用波纹管代码来审查我的应用程序。但它不适用于 iOS 8.4 版它适用于 iOS 8.3 版。

    if ([SKStoreProductViewController class] != nil) {
    SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
    [storeViewController setDelegate:self];

    NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
    f.numberStyle = NSNumberFormatterDecimalStyle;
    NSNumber *myNumber = [f numberFromString:kAppleID];

    NSDictionary *productParams = @{ SKStoreProductParameterITunesItemIdentifier : myNumber };
    [storeViewController loadProductWithParameters:productParams completionBlock:^(BOOL result, NSError *error) {
        if (result == YES) {
            [self presentViewController:storeViewController animated:YES completion:nil];
        } else {
            // handle the error
            NSLog(@"%@",error.description);
        }
    }];
}

请帮我解决这个问题,并告诉我为什么它不起作用?多谢

4

1 回答 1

0

对不起,我在代码中犯了一个小错误。 storeViewController loadProductWithParameters:如果未加载, 块将返回NO 。这意味着您已准备好展示 storeViewController。所以我改变了条件,它解决了我的问题

if ([SKStoreProductViewController class] != nil) {
SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
[storeViewController setDelegate:self];

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:kAppleID];

NSDictionary *productParams = @{ SKStoreProductParameterITunesItemIdentifier : myNumber };
[storeViewController loadProductWithParameters:productParams completionBlock:^(BOOL result, NSError *error) {
    if (error) {
         // handle the error
        NSLog(@"%@",error.description);
    } else {
        [self presentViewController:storeViewController animated:YES completion:nil];            
    }
}];

}

于 2015-08-12T06:40:43.593 回答