问一个Object-C的编码规范的小问题

2013-09-05 16:03:54 +08:00
 baikang
最近在读苹果的文档,Programming with Objective-C,看到Conventions这节里面写到:

If a method includes an error pointer parameter to be set if an error occurred, this should be the last parameter to the method. If a method takes a block, the block parameter should be the last parameter in order to make any method invocations as readable as possible when specifying a block inline.

想问一下如果一个method同时具有error 和 block类型的参数,哪个应该应该放在最后一个?
3092 次点击
所在节点    iDev
6 条回复
railgun
2013-09-05 16:10:45 +08:00
我建议是block在后面,因为block可能是很长的代码块。等你看完这个代码块之后,再突然冒出个参数会很突兀
xhacker
2013-09-05 16:16:08 +08:00
@railgun: 可以用 typedef 为每种 block 指定类型,这样就短多了。

我习惯 error 放最后。
railgun
2013-09-05 16:20:42 +08:00
@xhacker 呃,可能我没表达清楚,我指的是调用方法时候定义的匿名block,那个会很长。
baikang
2013-09-05 17:15:04 +08:00
@railgun
@xhacker

明白了,谢谢
tgfbeta
2013-09-05 22:31:21 +08:00
其实,楼主是不是想把error传给block做参数?特别是Continuation Passing Style的方法。
也许实际上需要两个block。我见过这么多API,很少有同时传入block和传出error引用的。
Hysteria
2013-09-05 23:48:09 +08:00
@railgun 说的很对。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/81426

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX