【发布时间】:2014-04-07 06:52:03
【问题描述】:
我有这段代码可以读取我的 coreData 并将其调整到 coredata 对象数组中。然后我将这些 coredata 对象之一放入它自己的 var 类型,但是并不是所有的属性都被填充开始。
这就是我的代码的样子。
NSMutableArray *tempFinishing = [coreDataController readFinishing];
for (int i = 0; i < [tempFinishing count]; i++) {
currentProject = [[Project alloc] init];
currentProject = [tempFinishing objectAtIndex:i];
if ([currentProject.hasChange isEqualToString:@"T"]) {
当我检查 hasChange 时,它返回为 nil...但这是奇怪的事情 如果我在控制台中执行此操作。
po currentProject.hasChange
返回零
po currentProject.myID
返回我的 ID“1234”
然后
po currentProject.hasChange
returns "F" // 这是不正确的,它应该设置为 T 并且在它被更改时已经看到它被调试过......但是这只在我在终端中 po 时才有效..
更新
现在收到这些警告
Incompatible pointer types sending 'NSString *' to parameter of type 'NSEntityDescription *'
Incompatible pointer types initializing 'Project *' with an expression of type 'NSManagedObject *'
使用此代码。
NSManagedObjectContext *context = [self managedObjectContext];
Project *currentProj = [[NSManagedObject alloc] initWithEntity:@"Project" insertIntoManagedObjectContext:context];
更新 2
这是我的 coredata readFinishing 方法。
- (NSMutableArray *)readFinishing {
NSManagedObjectContext *context = [self managedObjectContext];
if (context == nil) {
NSLog(@"Nil");
}
else {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Project" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSMutableArray *projectDictionaryArray = [[NSMutableArray alloc] init];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
for (Project *projects in fetchedObjects) {
[projectDictionaryArray addObject:projects];
}
return projectDictionaryArray;
}
return nil;
}
希望这有助于阐明一些问题.. 我已经为此工作了好几天.. :( 哈哈
更新 3
我想我可能已经找到了问题....在核心数据对象类中我决定随机查看我发现了这个..
现已更新为动态和测试...
【问题讨论】:
-
从该代码中删除
currentProject = [[Project alloc] init];并显示readFinishing方法的代码。 -
我已经更新了代码
-
您的
Project课程是自动生成的?你做了什么修改?它具有的所有属性都在模型中定义?显示类的代码,也许是模型的屏幕截图。 -
我很困惑,你有两个更新似乎改变了你正在使用的代码以及错误是什么。请重写您的问题,从头开始,因此没有更新。只需显示您拥有的当前代码,并描述您遇到的问题/错误。
-
@dynamic 解决了这个问题.. 显然我在自动生成核心数据对象后添加了 hasChange.. 然后因为 s 在键盘上接近 d 由于代码完成而我设法弄乱了它并且我的无能..
标签: ios objective-c core-data