题
一个问题,已经考虑我的最后一段时间。我主要的一个。网开发人员涉足的目标-C和Mac。
你是怎么发送"数据集"方法之间在目标-c。例如在C#你可以填一个定义类的数据,并通过它的周围,在一系列类型定义类。如果你有一个客户类你只会做一样的东西:
List<Customer> customers = DataLayer.GetAllCustomers();
只有这样我可以看到如何要这样做,可以在obj-c是填充一是定制的对象?这是一个高效率的方式做事吗?任何其他建议?我使用源码数据库/数据,我希望返回。
解决方案
你在正确的轨道。
可可收集的课程—其所有可变的一个不可改变的变异体—是:
- 是:下令,可以包含一个对象多次
- NSDictionary:无序的,映射键价值观,钥匙的拷贝
- NSSet:无序的,可以包含一个目只有一次
- NSCountedSet:无序的,可以包含一个对象多次
永恒不变的变异有很大的帮助与效率。标准模式,用于访问的课程具有易变的变异体是复制而不是保留。这是编纂的 @property
机构,通过使用 copy
属性财产:
// Department.h
@interface Department : NSObject
@property (readwrite, copy) NSSet *employees;
@end
这意味着,如果你通过一个可变的阵列需要一个数组,它将被复制,并且如果你通过到别的东西,它将复制一次。诀窍是,虽然"复制"的不可改变的对象真的只是保留,所以你只需要打的第一个复制。你可能 想 做一个副本,第一次无论如何,所以你不要通过一个可变数组别的东西,然后改变它的背后,无论你通过它。
可可,在Mac OS X,我还强烈鼓励你去看看在核心数据。它是一种替代的"数据集"的图案你可能会用到。NET/ADO/等。核心数据,你不"得到所有客户",然后通过收集周围。而不是你的查询,为客户你的关心,并作为你穿越关系的对象,你已经查询,其他的对象会被拉在。
核心数据也得到了你特喜欢些建模的实体,自动生成财产干将&制定者、精细地控制移民从一个架构到另一个版本,等等。
不隶属于 StackOverflow