我正在使用try catch来查找错误,但无法得到确切的原因。
for(NSMutableDictionary *dict in subArray)
{
Video *vid = [[Video alloc]init];
[vid initwithDictionary:dict ];
@try
{
[self.VideoArray addObject:vid];
}
@catch (NSException *exception) {
NSLog(@"%@", exception);
}
}
即使在应用try-catch之后,也找不到异常的原因,而视频模型文件中的代码如下所示。
-(id)initwithDictionary:(NSMutableDictionary*)dic{
if(self)
{
self.urlVedio1=[dic objectForKey:@"UrlVedio1"];
self.type_id=[dic objectForKey:@"type_id"];
}
return self;
}
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface Video : NSManagedObject
@property (nonatomic, retain) NSString * urlVedio1;
@property (nonatomic, retain) NSString * type_id;
@end
答案 0 :(得分:1)
您忘记在- (id)initWithDictionary:
方法
- (id)initWithDictionary:(NSDictionary *)dict
{
self = [super init];
if (self)
{
self.urlVedio1=[dic objectForKey:@"UrlVedio1"];
self.type_id=[dic objectForKey:@"type_id"];
}
return self;
}
答案 1 :(得分:1)
你不能初始化像
这样的对象视频*视频= [[视频分配]初始化];
NSManagedObject的文档声明专用的初始化程序是:
initWithEntity:insertIntoManagedObjectContext:
这就是失败的原因。 错误:CoreData:错误:无法在NSManagedObject类'Video'
上调用指定的初始值设定项所以,请使用
AppDelegate appdele =(AppDelegate )[UIApplication sharedApplication] .delegate; for(NSMutableDictionary *在subArray中的dict) {
NSEntityDescription *VideoEntity = [NSEntityDescription
entityForName:@"Video"
inManagedObjectContext:appdele.managedObjectContext];
Video *vid =(Video*) [[NSManagedObject alloc]
initWithEntity:VideoEntity
insertIntoManagedObjectContext:appdele.managedObjectContext];
[vid initwithDictionary:dict ];
@try
{
[VideoArray addObject:vid];
}
@catch (NSException *exception) {
NSLog(@"%@", exception);
}
NSLog(@"%@", VideoArray);
}