pok*_*tad 13 iphone cocoa core-data nsmanagedobject xcode4
现在Xcode4已公开发售,我正在将这个问题从Apple的秘密开发论坛中移出:
有人可以解释为什么在以下过程中生成的代码与Xcode3中的代码不同?代码更好还是可能是错误?
我使用Core Data自定义托管类,这是我在Xcode3中遵循的过程:
现在,在Xcode4中,我认为这是如何做到的,但我不确定,因为它生成不同的代码:
它产生的代码有很多不同之处:
例如,Xcode3会在HEADER文件中生成此代码:
@interface SampleEntity (CoreDataGeneratedAccessors)
- (void)addChildObject:(Child *)value;
- (void)removeChildObject:(Child *)value;
- (void)addChild:(NSSet *)value;
- (void)removeChild:(NSSet *)value;
@end
Run Code Online (Sandbox Code Playgroud)
现在,Xcode4在IMPLEMENTATION文件中生成此代码:
@implementation SampleEntity
@dynamic children;
- (void)addChildObject:(Child *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"children" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"children"] addObject:value];
[self didChangeValueForKey:@"children" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[changedObjects release];
}
Run Code Online (Sandbox Code Playgroud)
有人可以权衡为什么这是不同的?Xcode4代码感觉不喜欢这种生成NSManagedObject子类的新方法.
Mar*_*rra 11
简短回答:不要使用Xcode的代码生成.使用发电机,享受更轻松的生活.
至于原因,很难说.我从来不喜欢Xcode生成Core Data子类的方式,也不会推荐它们.我们可以猜测为什么他们做了他们已经完成的事情,但基于Xcode4和Core Data的其他问题,我会把它归结为"未准备好"或"未完全测试".
如果您想继续使用Xcode代码生成器,请提交雷达文件.
归档时间: |
|
查看次数: |
4148 次 |
最近记录: |