【发布时间】:2009-05-04 17:59:38
【问题描述】:
我正在编写一个 iPhone 应用程序,它在许多地方都需要执行非常简单的请求响应类型的非 HTTP 或 FTP 网络。
我已将所有这些封装到一个与运行循环集成的 SimpleQuery 类中。
SimpleQuery *lookup = [[SimpleQuery alloc] init];
[lookup setDelegate:self];
[lookup doQueryToHost:queryServer port:queryPort query:queryString ];
如您所见,调用对象将自己设置为委托。结果完成后,它会使用结果调用委托上的方法。
[delegate simpleQueryResult:resultString simpleQuery:self];
我现在有一个 SimpleQuery 用户,它有两种类型的查询,所以我需要扩展 SimpleQuery 来支持它。
我能想到两种明智的做法。
首先将一个选择器传递给doQueryString,或者一个单独的doQueryStringWithSelector。
[lookup doQueryToHost:queryServer port:queryPort query:queryString selector:@SEL ];
第二次将标签传递给doQueryString,这样当委托被调用时,它可以在传递simpleQuery时查询标签,以找出结果的用途。
[lookup doQueryToHost:queryServer port:queryPort query:queryString withTag:tag ];
我只是想知道从编码风格的角度来看哪个最好,第一个似乎更简单,但标记似乎更符合 iPhone SDK 和 Interface Builder
【问题讨论】:
标签: iphone objective-c coding-style