Objective-C中@selector中的多个参数

sus*_*use 2 objective-c selector

如果这是必须调用的方法名称:

-(Authenticate_Obj)Authenticate_User:(NSString*)Number:(NSString*)name:(NSString*)password
Run Code Online (Sandbox Code Playgroud)

如何从@selector调用这个方法?

我能用这种方式吗?

[tis_obj AuthenticateMobileServer:self action:@selector(AuthenticateUser:::)];
Run Code Online (Sandbox Code Playgroud)

谢谢.

bbu*_*bum 8

鉴于这种:

-(Authenticate_Obj)Authenticate_User:(NSString*)Number:(NSString*)name:(NSString*)password
Run Code Online (Sandbox Code Playgroud)

你方法的选择器是:

Authenticate_User:::
Run Code Online (Sandbox Code Playgroud)

你要传递给哪个字符串@selector().

你的AuthenticateMobileServer:action:方法必须采用一个选择器,当被调用时,显然会接受那组参数.

但是,这个代码存在一些问题(第一个线索是其他非常知识渊博的人的两个错误答案).

  1. 方法名称不以大写字母开头,也不包含大写字母_.方法名称是驼峰式的.所以,类似的authenticateUserNumber:name:password:方法名称会更合适.

  2. 每个参数都应该包含描述它的方法名称的一部分.再次,authenticateUserNumber:name:password:符合标准做法.

  3. 类名没有_.我假设Authenticate_Obj是一个类.如果是这样,它也需要作为指针返回.

也就是说,该方法可能应该是这样的:

- (AuthenticateObject *) authenticateUserNumber: (NSString*) aNum
                                           name: (NSString *) aName
                                       password: (NSString *) aPassword;
Run Code Online (Sandbox Code Playgroud)