使用NSUserActivity和CoreSpotlight但仍将iOS8设置为部署目标

使用NSUserActivity和CoreSpotlight但仍将iOS8设置为部署目标,第1张

概述是否可以使用iOS9的新功能,如NSUserActivity和CoreSpotlight,但仍然将我的开发目标设置为8.2,以便iOS8的用户仍然可以使用该应用程序? 我假设我只需要进行iOS版本号检查或使用respondsToSelector:. 它是否正确? 是的,我在我的一个应用程序中执行此 *** 作(实际上具有iOS 7的部署目标).做起来很简单.只需确保CSSearchableIndex类存在 是否可以使用iOS9的新功能,如NSUserActivity和CoreSpotlight,但仍然将我的开发目标设置为8.2,以便iOS8的用户仍然可以使用该应用程序?

我假设我只需要进行iOS版本号检查或使用respondsToSelector:.

它是否正确?

解决方法 是的,我在我的一个应用程序中执行此 *** 作(实际上具有iOS 7的部署目标).做起来很简单.只需确保CSSearchableIndex类存在,使CoreSpotlight框架可选,并正确编写代码以防止较新的API在具有早期版本iOS的设备上运行.

您甚至可以保护代码,以便在有充分理由的情况下在Xcode 6下进行编译.

例:

// Ensure it only compiles with the Base SDK of iOS 9 or later#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000    // Make sure the class is available and the device supports CoreSpotlight    if ([CSSearchableIndex class] && [CSSearchableIndex isIndexingAvailable]) {        dispatch_async(_someBGQueue,^{            Nsstring *somename = @"Some name";            CSSearchableIndex *index = [[CSSearchableIndex alloc] initWithname:somename];            // rest of needed code to index with Core Spotlight        });    }#endif

在您的app委托中:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000- (BOol)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(voID(^)(NSArray *restorableObjects))restorationHandler {    if ([[userActivity activityType] isEqualToString:CSSearchableItemActionType]) {        // This activity represents an item indexed using Core Spotlight,so restore the context related to the unique IDentifIEr.        // The unique IDentifIEr of the Core Spotlight item is set in the activity’s userInfo for the key CSSearchableItemActivityIDentifIEr.        Nsstring *uniqueIDentifIEr = [userActivity.userInfo objectForKey:CSSearchableItemActivityIDentifIEr];        if (uniqueIDentifIEr) {            // process the IDentifIEr as needed        }    }    return NO;}#endif
总结

以上是内存溢出为你收集整理的使用NSUserActivity和CoreSpotlight但仍将iOS8设置为部署目标全部内容,希望文章能够帮你解决使用NSUserActivity和CoreSpotlight但仍将iOS8设置为部署目标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存