Mar*_*ark 3 methods objective-c signature
我有这段代码:
- (id) getSearchSuggestions:(NSString*)q;
- (NSOperationQueue*) getSearchSuggestions:(NSString*)q callback:(id<UserDelegate>)callback;
- (id) getSearchSuggestions;
- (NSOperationQueue*) getSearchSuggestions:(id<UserDelegate>)callback;
Run Code Online (Sandbox Code Playgroud)
我 Xcode 在最后一行不断向我显示一个错误:
Duplicate declaration of method "getSearchSuggestions"
Run Code Online (Sandbox Code Playgroud)
为什么?在我看来,签名都是不同的。
这个签名:
- (id) getSearchSuggestions:(NSString*)q;
Run Code Online (Sandbox Code Playgroud)
与此签名相同:
- (NSOperationQueue*) getSearchSuggestions:(id<UserDelegate>)callback;
Run Code Online (Sandbox Code Playgroud)
所有对象指针都是id. 所以这两个都是获取一个对象并返回一个对象的方法。
更好的名字的例子是:
- (id)searchSuggestionsForQueryString:(NSString*)q; // Or ForTag, or whatever "q" is
- (NSOperationQueue*)searchOperationQueueForQuery:(NSString*)q callback:(id<UserDelegate>)callback;
- (id)fetchSearchSuggestions;
- (NSOperationQueue*)searchOperationQueueWithCallback:(id<UserDelegate>)callback;
Run Code Online (Sandbox Code Playgroud)
不太清楚为什么在这里返回操作队列,但这是您用于执行此操作的方法的名称。
| 归档时间: |
|
| 查看次数: |
6056 次 |
| 最近记录: |