【问题标题】:What should this method named? [closed]这个方法应该叫什么名字? [关闭]
【发布时间】:2013-09-23 10:16:26
【问题描述】:

我有一种方法可以使用具有 4 个不同条件(2 个布尔参数)的块(比方说数据库事务)执行某些操作。好吧,在包括 Apple 在内的许多约定中,block 参数应该是最后一个,但我们也不应该把 bool 参数放在第一位。 你觉得我应该给这个方法取什么名字?

- (void)performDatabaseTransactionWithSynchronously:(BOOL)synchronously
                                 isWritterOperation:(BOOL)isWritter
                                        transaction:(TransactionBlock)block

- (void)performDatabaseTransactionWithSynchronously:(BOOL)synchronously
                                 isWritterOperation:(BOOL)isWritter
                                    withTransaction:(TransactionBlock)block

- (void)performDatabaseTransaction:(TransactionBlock)block
                     synchronously:(BOOL)synchronously
                isWritterOperation:(BOOL)isWritter

还是其他?

【问题讨论】:

  • 如果它也必须接受 NSError ** 参数怎么办?
  • @domi,block应该是最后一个参数,看答案下我的评论。

标签: objective-c methods coding-style naming-conventions naming


【解决方案1】:

我的版本是:

- (void)performDatabaseTransactionSynchronously:(BOOL)synchronously
                              isWriterOperation:(BOOL)isWriter
                                      withBlock:(TransactionBlock)block

【讨论】:

  • 只要在block参数前加上即可。我会将块留在原处,因为该块可能包含许多代码字符串,并且其他参数(在块之后)可能不可见
  • 我同意这个评论,这也是我的惯例。
  • 也许你接受这个答案,那么?
  • 我喜欢你的回答,但我也想听听其他人的意见:)
  • 是的,当然,但我认为这里最重要的事情是让块参数成为最后一个参数,并在参数之前为选择器的各个部分赋予有意义的名称
【解决方案2】:

现在我用了

- (BOOL)performDatabaseTransactionWithDeffered:(BOOL)useDeferred
                             isWriterOperation:(BOOL)isWritter
                                         error:(NSError * __autoreleasing *)error
                                    usingBlock:(TransactionBlock)block

- (void)performDatabaseTransactionAsynchronouslyWithDeffered:(BOOL)useDeferred
                                           isWriterOperation:(BOOL)isWriter
                                                 transaction:(TransactionBlock)block
                                                  completion:(CompletionBlock)completion

还有其他答案吗?

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2013-08-13
    相关资源
    最近更新 更多