【发布时间】:2013-09-23 17:57:09
【问题描述】:
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
CGSize 是一个朴素的 C 结构,不接受消息。
(在我的情况下)创建尺寸为 0 的 CGsize 的适当方法是什么?
如果我直接使用 C,那将是 calloc() 或诸如此类的用例。这个用例的 Objective-C 习惯用法是什么?
【问题讨论】:
-
嗯,Objective-C 是 C 的超集,你可以使用
calloc()。但是你确定你需要动态内存分配吗?为什么不使用预定义常量CGSizeZero?还是CGSize sz = { 0, 0 };?还是CGSize sz = CGSizeMake(0, 0);?还是(CGSize){ 0, 0 }? -
@H2CO3,通常解决问题最糟糕的方法是,例如,按照 COBOL 中的工作方式构建、解决并几乎构建解决方案,然后尽你所能来实现解决方案在 Python 的语法中。任何可以在 C 中运行的东西将在 Objective-C 中运行,但是编写一个使用 Python 的 Python 解决方案和编写一个使用 COBOL 的 Python 解决方案之间有很大的不同。
-
@JonathanHayward 除了 COBOL 不是 Python 的严格超集,但 Objective-C 是 C 的严格超集。它只是 C 之上的一个薄层,增加了一些 OO,没有别的,而且- 正如你刚刚经历的那样 - 你不能(也不应该)试图“客观化”那些简单的 C 语言。另外,不要教我设计。
标签: iphone ios objective-c c ipad