Objective c g、 表演?动态调度非常好,除了有很多调用方法和非常小的实体。你是说CGRect和CGPoint吗?值得注意的是,CoreGraphics库早于ObjC(NextStep)的使用,因此在编写时无法成为对象。这是一个很好的观点,尽管解决起来不会过于复杂。当然

Objective c g、 表演?动态调度非常好,除了有很多调用方法和非常小的实体。你是说CGRect和CGPoint吗?值得注意的是,CoreGraphics库早于ObjC(NextStep)的使用,因此在编写时无法成为对象。这是一个很好的观点,尽管解决起来不会过于复杂。当然,objective-c,class,struct,foundation,Objective C,Class,Struct,Foundation,g、 表演?动态调度非常好,除了有很多调用方法和非常小的实体。你是说CGRect和CGPoint吗?值得注意的是,CoreGraphics库早于ObjC(NextStep)的使用,因此在编写时无法成为对象。这是一个很好的观点,尽管解决起来不会过于复杂。当然,这是关于值类型和对象之间的区别。对象封装数据(即,对象内部可能存在外部世界看不到的隐藏数据),struct只存储数据。对象可以行为(即随时间改变其自身属性),而值类型不能。看看这个演讲。将函数绑定到数据本身很好,但不一定需要类来实现它这里有几


g、 表演?动态调度非常好,除了有很多调用方法和非常小的实体。你是说CGRect和CGPoint吗?值得注意的是,CoreGraphics库早于ObjC(NextStep)的使用,因此在编写时无法成为对象。这是一个很好的观点,尽管解决起来不会过于复杂。当然,这是关于值类型和对象之间的区别。对象封装数据(即,对象内部可能存在外部世界看不到的隐藏数据),struct只存储数据。对象可以行为(即随时间改变其自身属性),而值类型不能。看看这个演讲。将函数绑定到数据本身很好,但不一定需要
来实现它这里有几个函数同时在
NSPoint
NSRect
上运行,虽然它们作为方法是有意义的,所以我不确定这是否是原因。这并不能真正解决为什么某些数据类型,例如
NSRect
是结构类,其他是Objective-C类。@我同意。我误解了OP的问题。(我认为他在谈论C++类)我不确定这真的解决了这个问题。Foundation框架提供了使用诸如<代码> NSReCT和<代码> NSPITEN/<代码>(以及<代码> NSime< /COD>,<代码> NSRange < /代码>等结构)的功能,这些方法可以很容易地证明是合理的。如果Objective-C类可以说具有“破坏的封装”,那么C结构中的封装实际上是破坏的。你也无法真正与Swift的结构相比较,因为Swift的结构更接近Objective-C类,而不是C结构。在C和Obj-C中,结构根本没有封装,所以它没有被破坏,正如我所说,如果你在Obj-C中需要它,你可能应该使用类。结构还有其他强大的方面。关于Swift中的结构,您可以声明具有“名称空间”的方法对于一个结构来说,这并不意味着结构现在可以像对象一样工作——它们仍然非常不同。Swift的结构与C的结构有什么相似之处?结构在这两种语言中都是值类型——这可能是主要的相似之处。正如您所知,类是引用类型。我不认为Swift中的structs比C中的structs做得更多。你已经得到了大量的语法支持(我也很喜欢),但struct的语义仍然没有改变。对于所有读过这篇评论的人,我建议你观看来自。使用structs非常鼓舞人心。性能几乎肯定是答案。这些设计决策可以追溯到接下来的几天,那时计算机的功能要弱得多,性能——特别是在关键的低级绘图代码中——至关重要。当然,如果不与实际编写框架的人交谈,很难说。
CGRect frame = ...
UIView *view1 = [[UIView alloc] initWithFrame:frame];

frame.origin = ...
UIView *view2 = [[UIView alloc] initWithFrame:frame];