这不是特定于代码的问题,而是更多的Objective-C术语问题。在C中,您有纯数据的结构。在Enterprise Java中,您有“bean”类,这些类纯粹是具有getter和setter的成员变量,但没有业务逻辑。在Adobe FLEX中,您有“值对象”。
在Objective-C中,是否存在一个对象的正确名称(当然是NSObject的后代),只有ivars和getters / setter(或@ property / @ synthesize,如果你想得到想象)并且不真实商业逻辑?
更具体的示例可能是一个简单的类,其中包含文件名,文件大小,描述和各种其他元数据的getter和setter。然后你可以把一堆这些并轻松地放入一个容器(NSDictionary,NSArray)中,而不需要对C结构进行混乱的NSValue包装。它也比将一堆松散类型的子NSDictionaries放入父容器对象中的结构要多一些。
答案 0 :(得分:2)
不,没有特别的名字(至少据我所知)。从NSObject
继承的所有Objective-C对象都是第一类对象。您当然可以使用getter和setter实现类,但即使是合成属性也具有适用于原子性和内存管理的温和“业务逻辑”。如果需要,可以将C结构用于纯数据(Cocoa中的一个例子是NSRect
),但是,正如你所说,它更难以与NSDictionary
等其他类一起使用。
答案 1 :(得分:0)
Objective-C中没有这类课程的正式名称。人们倾向于引用诸如“值对象”或“纯数据对象”之类的东西,但这两者都是过载的,因为它们也可以被用来引用NSValue(或者属性列表值)和NSData子类。我认为后者是描述它们最简洁的方式。