Why does AppStore.requestReview(in:) require NSViewController Parameter?

Looking to update one of my apps that uses SKStoreReviewController +requestReview (deprecated) to

AppStore.requestReview(in:)

umm...I have a few of questions...

  1. Why is an NSViewController parameter required? It's really not so uncommon for an AppKit app to just use NSWindowController with a window that does not use NSViewController...

  2. It should be possible to present the review request in a standalone alert (attached to a window is preferred IMO but it still should be possible to ask in separate window).

3)...why Swift..(err nevermind)

Ideally:

AppStore requestReview should take a NSWindow parameter but that parameter should be optional. If nil the request should be presented in a standalone window (like an alert). If non nil..present as a sheet on the window.

Why a view controller? Maybe I'm missing something.

FB20489224

So I just spent quite a bit of time restructuring things in my app to use the new AppStore.requestReview(in:)

My app is all Objective-C so I had to add a single Swift file just wrap the single class method in a @objc wrapped method. Why they can't just declare the AppStore.requestReview method @objc is beyond me.

Then I had to sandwich an NSViewController in the mix. Before SKStoreReviewController +requestReview did not rely on the presence of a view controller (SKStoreReviewController always shows the request in a separate alert). But the new API has a NSViewController parameter that is not optional

And guess what... after doing all that I discovered the new AppStore.requestReview(in:) does the exact same thing as the deprecated SKStoreReviewController +requestReview. The NSViewController parameter which is not optional is completely ignored and the review is presented in a separate alert just like SKStoreReviewController. It is not presented as a sheet.

What a complete waste of time. Seriously who is designing these APIs....who deprecates something with another method that does the exact same thing as the old method....the only thing the new method does is require Swift.

Why does AppStore.requestReview(in:) require NSViewController Parameter?
 
 
Q