如何遵守Swift中的协议?
我尝试将facebookSDK方法转换为swift代码:如何遵守Swift中的协议?,swift,Swift,我尝试将facebookSDK方法转换为swift代码: - (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:`(id<FBGraphUser>)user {} -(无效)loginView蚀刻教育信息:(FBLoginView*)loginView 用户:`(id)用户{} 问题在于: id<FBGraphUser>)user id)用户 在目
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
user:`(id<FBGraphUser>)user {}
-(无效)loginView蚀刻教育信息:(FBLoginView*)loginView
用户:`(id)用户{}
问题在于:
id<FBGraphUser>)user
id)用户
在目标C中:符合协议
在Swift中表示泛型
如果您只想确认用户类型为id并符合协议FBGraphUser: id是Swift中的任意对象 您可以在变量名声明中使用协议作为类型
func loginViewFetchedUserInfo<T where T: AnyObject, T: FBGraphUser>(loginView: FBLoginView, #user: T)
{
...
}
// use the # only if you want the call of the method to write 'user:'
可能不需要用户:
,因为这是方法的正常模式
但是,您可以使用
where
关键字做更多的工作
在类型名称后使用,其中指定需求列表,例如,要求类型实现协议,要求两个类型相同,或要求类具有特定的超类
摘自:苹果公司的《Swift编程语言》 你能告诉我如何在我发布的方法中使用吗?好的,我没有错误,但是方法没有被调用。当然,我想你应该声明它。我向您展示了如何声明这样一种方法是的,我知道,但是当我运行我的应用程序时,什么都没有发生,甚至不清楚您想要什么。你应该用更多的细节信息更新你的问题。
facebookObject.loginViewFetchedUserInfo(loginView: myLoginView, user: myLoginView)