Ios 为什么Objective-C转换为swift错误

Ios 为什么Objective-C转换为swift错误,ios,objective-c,swift,Ios,Objective C,Swift,为什么 但是把方法改成这个 
-(void)addSimpleListener:(id<XXSimpleListener>)listener Xcode(或任何您用来进行转换的工具)仅仅是以下内容。具体而言: 省略不必要的词语。名称中的每个单词都应在使用现场传达显著信息 可能需要更多的词语来澄清意图或消除歧义,但那些与读者已经掌握的信息冗余的词语应该省略。特别是,省略仅重复类型信息的单词 在第一种情况下,addSimpleListener中的单词SimpleListener重复参数

为什么

但是把方法改成这个


-(void)addSimpleListener:(id<XXSimpleListener>)listener
Xcode(或任何您用来进行转换的工具)仅仅是以下内容。具体而言:

省略不必要的词语。名称中的每个单词都应在使用现场传达显著信息

可能需要更多的词语来澄清意图或消除歧义,但那些与读者已经掌握的信息冗余的词语应该省略。特别是,省略仅重复类型信息的单词

在第一种情况下,
addSimpleListener
中的单词
SimpleListener
重复参数的类型,因此它们将从方法名称中删除。但是,在第二种情况下,
SimpleListener
SimpleListening
对于您正在使用的任何工具都不相同,因此它认为应该保留
SimpleListener

但在我(人类)看来,我认为该方法应命名为
addListener
,因为:

有时,为了避免歧义,需要重复类型信息,但一般来说,最好使用描述参数角色的单词,而不是其类型

Listener
是参数的角色。

您的意思是“为什么Xcode会在第一种情况下自动将方法重命名为
add
”,可能有用(如果不重复):。

-(void)addSimpleListener:(id<XXSimpleListening>)listener
func addSimpleListener(_ listener: XXSimpleListening?){
}