首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于CGPoint或NSPoint,是否有诸如@[数组]或@{@"dict":dict}之类的现代Obj缩写?

对于CGPoint或NSPoint,是否有诸如@[数组]或@{@"dict":dict}之类的现代Obj缩写?
EN

Stack Overflow用户
提问于 2013-07-29 17:21:20
回答 2查看 790关注 0票数 3

这是很棒的:

代码语言:javascript
运行
复制
 NSArray *myArray = @[0, M_PI];
 NSDictionary *myDict = @{@"item":anItem, @"another":somethingElse};
 //etc.

但这是乏味的:

代码语言:javascript
运行
复制
[baseline moveToPoint:NSPointFromCGPoint(CGPointMake(0, baselinePosition))];
[baseline lineToPoint:NSPointFromCGPoint(CGPointMake(self.bounds.size.width, baselinePosition))];

有什么像@(0, 0)这样的东西可以简化在代码中编写点文字吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-29 17:25:01

C99复合文字拯救:

代码语言:javascript
运行
复制
(CGPoint){ 0, 0 }

代码语言:javascript
运行
复制
(NSPoint){ 0, 0 }
票数 13
EN

Stack Overflow用户

发布于 2013-07-29 18:12:37

正如H2CO3所指出的,您可以只转换一个文字--这是普通的旧C,而NSPoints和CGPoints只是C结构。这里没什么花哨的。

因此,没有目标C快捷方式,无论是现代的还是其他的,但是与您想出的顺序相比,有一个旧的宏可以为您节省几次击键:

代码语言:javascript
运行
复制
NSMakePoint(self.bounds.size.width, baselinePosition)

您会注意到,Cocoa中使用的旧宏和各种常量遵循一个自然的英文词序:

代码语言:javascript
运行
复制
NSMakeRect(), NSMakeRange(), etc.

以及选项(例如,在NSString中)

代码语言:javascript
运行
复制
NSAnchoredSearch, NSNumericSearch, NSCaseInsensitiveSearch, etc.

这些选项共有的概念(“搜索”)被添加到符号名的末尾,就像设计NSString类时的惯例一样。

更现代的API使用命名约定,因此属于同一个“组”的名称以相同的单词开头。这使得字母化更容易,并极大地帮助自动完成为参数值提供可能的选项。例如,您可以在NSOperation中看到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17930256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档