Tag:

通过使用核心数据的关系获取属性的值 – 当前传递NULL

我有一个包含三个实体的核心数据模型:Transaction,Occasion,Person以及当前我在Transaction Entity中获取数据的时候,我得到了“NULL”作为数据库中的值。 让我解释。 在我的情况下,交易是与Person和Occasion有关系的实体。 个人实体具有名称属性和与交易实体的关系。 交易(Person Entity)<—— >> whoBy(交易实体)。 从类别属性(场合实体)<—————- >>事件(事务实体)也有关系。 我在这个应用程序的基本阶段。 我有一个表视图控制器,当你按下加号button时,你会被要求在模态视图中添加名称和场合。 最终,两者都将显示在表视图中,名称是单元格的主文本,并且是副标题。 当我将用户插入的值直接添加到Person实体(代表name属性)时,它的工作原理和我在Table View中看到的一样。 同样的情况(分开给Person)。 但是,当我直接将数据添加到交易实体并使用fetchRequest来实现时,每次按保存传递值并返回到表视图时,我都会显示(NULL)。 我的AddEntryVC在保存button方法中有这个: NSManagedObject *newEntry = [NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:context]; [newEntry setValue:self.nameTextField.text forKeyPath:@"whoBy.name"]; 在表格视图中,我有: //有NSMutableArray属性叫事务来保存事务NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@“Transaction”]; self.transactions = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; //在cellForRowAtIndexPath NSManagedObject * transaction = [self.transactions objectAtIndex:indexPath.row]; [cell.textLabel setText:[NSString stringWithFormat:@"%@", [transaction valueForKeyPath:@"whoBy.name"]]]; 当我运行这个,没有错误/警告,当我添加一个条目,我看到(NULL)作为保存的结果。 […]

NSNumberFormatter在设备上返回nil,而不是在模拟器上

我使用NSNumberFormatter将用户input转换为NSNumber(十进制数),我使用ARC。 NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; [f setNumberStyle:NSNumberFormatterDecimalStyle]; [f setMaximumFractionDigits:1]; _myNumber = [f numberFromString:myTextField.text]; 有时这会导致_myNumber nil 。 即使当我绝对确定用户input是一个正确的十进制数(我在debugging过程中检查)。 为了完整性, _myNumber是ViewController的综合属性。 这只发生在设备上运行的应用程序,而不是当我在模拟器中运行。 正在使用的键盘是“Decimal Pad”在代码的不同部分,在不同的ViewController中,代码确实起作用。 我现在有一个解决方法,我已经在上面的代码添加下面: if (!myNumber){ myNumber = [NSNumber numberWithFloat: myTextField.text.floatValue]; } 有人知道为什么NSNumberFormatter可以返回零,即使调用[NSNumber numberWithFloat: myTextField.text.floatValue]作品?