我假设我只需要进行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设置为部署目标所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)