0

我有一个例程检查存储在核心数据实体中的字符串的最后一个字符是否是 $,如果是,则设置一个变量“last”来记住这一点,然后将删除 $ 的字符串重写到核心数据。

它不会抛出任何错误,如果最后一个字符是 $,它会运行“if”例程,但它不会写回 Core Data。谁能看到我做错了什么?

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Observations"];
NSError *error = nil;
observationList = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];


for (int loop1 = 0; loop1 < [observationList count]; loop1++)
{

NSString *classCheckActual = [[observationList objectAtIndex:loop1] valueForKey: @"obsClassName"];
NSString *last = [classCheckActual substringFromIndex:[classCheckActual length] - 1];
NSString *classCheck = @"";

if ([last isEqual: @"$"])
{
  classCheck = [classCheckActual substringToIndex:[classCheckActual length] - 1];
  NSManagedObject *schoolObject = [[self observationList] objectAtIndex:loop1];
  [schoolObject setValue:[NSString stringWithFormat:@"%@", classCheck] forKey:@"obsClassName"];
  NSError *error;
[context save:&error];
}

}
4

1 回答 1

1

错误是您使用了两个不同的数组:observationList第一部分和[self observationList]第二部分。

于 2013-10-05T08:56:59.823 回答