【发布时间】:2008-12-16 16:21:14
【问题描述】:
我正在做一个 iPhone 应用程序的项目。我们有一个可可顾问进来几个星期。他向我展示了一个有趣的 Cocoa 习语,处理接口,但我们之间存在语言障碍,他无法真正解释为什么这样做或记录在哪里,所以我可以自己学习更多。我进入了猴子看模式,只是使用了他喜欢的风格。但我对这种风格的历史一无所知,这让我很烦。这当然不是一个非正式的协议。果然,查看一些 Cocoa API 标头,我有时会看到他断言的样式是“Cocoa”方式。这是一个示例(注意访问器、修改器等,每个都有自己的接口声明,没有有趣的大括号):
@interface AViewController : UIViewController <UITextViewDelegate> {
@public
UITableView *tableView;
@private
NSUInteger someIndex;
}
@property (nonatomic, retain) ...
@end
@interface AViewController (AViewControllerCreation)
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withController:(id)controller;
@end
@interface AViewController (AViewControllerMutator)
- (void) doSomeSettingStuff;
@end
@interface AViewController (AViewControllerAccessor)
- (NSString *)doSomeAccessorStuff;
@end
@interface AViewController (AViewControllerAction)
- (IBAction)cancel:(id)sender;
@end
@interface AViewController (AViewControllerTableViewDelegate) <UITableViewDelegate, UITableViewDataSource>
@end
你可以在NSButton、NSControl等中看到这种设置界面的风格。有趣的是,对应的类如UIButton、UIControl不使用这种成语。嗯,这些可能是因为我认为 UIKit 是在 AppKit 之后完成的。那么这个成语是“老帽子”吗?另外,除了风格之外还有什么理由吗?是不是很好的风格?坏的?有什么文档可以解决这个问题吗?谢谢大家。
【问题讨论】:
标签: iphone objective-c cocoa coding-style interface