Yos*_*far 10 facebook objective-c ios swift
我有2个需要使用该application:openURL:sourceApplication:annotation
方法的SDK .一个是FacebookSDK
,第二个是GooglePlusSDK
.
这些是方法:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将它们迁移到一个方法中?什么是最好的方法?
提前致谢.
Ind*_*ore 22
使用逻辑OR运算符 ||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication] || [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];
}
Run Code Online (Sandbox Code Playgroud)
Swift版本
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String!, annotation: AnyObject) -> Bool {
return FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication) || GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation: annotation)
}
Run Code Online (Sandbox Code Playgroud)
你可能会这样做:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL shouldOpen = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
shouldOpen = shouldOpen ? shouldOpen : [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];
return shouldOpen;
}
Run Code Online (Sandbox Code Playgroud)
一种更清洁的方式(在Swift中)将是:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String!, annotation: AnyObject) -> Bool {
var handled: Bool
if let facebook = url.scheme?.hasPrefix("fb") {
handled = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication)
} else {
handled = GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation: annotation)
}
// include any specific handling code as necessary
return handled
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8319 次 |
最近记录: |