Search code examples
iosobjective-cskstorereviewcontroller

Instance respond to selector always return NO. But why?


This statement is always false. Even on iOS 10.3 device. I don't know why.

if ([NSClassFromString(@"SKStoreReviewController") instancesRespondToSelector:@selector(requestReview)]) {
    [SKStoreReviewController requestReview];
}

PS If I remove if statement there is a review dialog on my screen.


Solution

  • requestReview is a class method, not an instance method. Use respondsToSelector on the class.

    if ([NSClassFromString(@"SKStoreReviewController") respondsToSelector:@selector(requestReview)]) {
        [SKStoreReviewController requestReview];
    }