iphone:使用从核心数据创建的实体对象?

iphone:使用从核心数据创建的实体对象?,iphone,objective-c,xml,core-data,Iphone,Objective C,Xml,Core Data,我目前有一个通过核心数据创建的视频对象,定义如下: 视频.h #import <CoreData/CoreData.h> @interface Video : NSManagedObject { } @property (nonatomic, retain) NSString * title; @property (nonatomic, retain) NSString * urlImage; @property (nonatomic, retain) NSString

我目前有一个通过核心数据创建的视频对象,定义如下:

视频.h

#import <CoreData/CoreData.h>


@interface Video :  NSManagedObject  
{
}

@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * urlImage;
@property (nonatomic, retain) NSString * description;
@property (nonatomic, retain) NSString * urlString;

@end
我需要我的应用程序创建这些视频对象的NSMutableArray(脱离XML流),并将它们显示给用户

但是,只有当用户单击“添加到收藏夹”时,才应保留视频

在解析方法中,我尝试创建一个视频对象,并为其分配相应的属性。但是,xCode将因此错误而失败(在video.title=xmlstream.title期间):


有人能告诉我如何修复此问题以定期使用视频对象吗?

您应该使用
@synthesis
而不是
@dynamic
。使用
@synthesis
时,会自动实现getter(
-propertyName
)和setter(
-setPropertyName:(id)newPropertyName
)方法,使用
@dynamic
时,您必须自己执行。

。。。所以如果我用@synthesis替换@dynamic。。这会导致核心数据出现问题吗?哎呀,我没注意到你在谈论一个
NSManagedObject
子类。。。在这种情况下,
@dynamic
应该可以正常工作。。。是否确实已将实体正确连接到类?您是否正确创建了托管对象?是的。我希望能够使用NSMangeObject之外的视频对象。这是可能的吗?不,该对象已绑定到
NSManagedObject
,您不能像对待其他对象那样
alloc
。(当然可以,但正如你所见,它不起作用)。创建新的
视频
对象的唯一方法是将其插入到
NSManagedObjectContext
中,但这样,它当然位于数据存储中,而不是独立的对象。
#import "Video.h"


@implementation Video 

@dynamic title;
@dynamic urlImage;
@dynamic description;
@dynamic urlString;

@end
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Video setTitle:]: unrecognized selector sent to instance 0x70720d0'