如果设置最小值。属性值说“X”等于 1。在某些情况下,该值变为 0,模型将如何表现?抛出错误/警告?我的场景是我想在标签中显示消息的数量,但是当没有消息时,就会出现零。而不是代码我只想尝试通过 xcmodel (如果可能的话),即如果计数小于 min。该属性的值然后标签应该隐藏。如果第一次运行为零,它确实会隐藏,但是视图控制器的一些过渡运动会导致更新计数标签导致零显示。
问问题
58 次
3 回答
0
从核心数据编程指南:
验证约束仅在保存操作期间或根据请求由 Core Data 应用(您可以在对您的应用程序流程有意义的任何时候直接调用验证方法)
因此,可以将属性设置为NSManagedObject
小于指定最小值的值,但在保存NSError
期间会出现这种情况。NSManagedObjectContext
至于您的确切情况,如果不查看您的数据模型和代码,很难给您建议。我可能会建议您调试视图控制器转换和视图更新(因为您说某些特定的转换序列会导致视图行为不正确)。
于 2016-03-28T10:08:10.363 回答
0
如果值超出您在建模数据时设置的边界,Core Data 将不允许您保存上下文。
实体名称是SomeEntity
。它有一个属性count
(Integer 16
类型),设置为Minimum = 0
.
这是新对象的片段:
SomeEntity *object = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([SomeEntity class])
inManagedObjectContext:context];
object.count = @(-1);
NSError *error;
BOOL success = [context save:&error];
// success == NO here
if (!success) {
NSLog(@"ERROR saving data: %@", error.localizedDescription);
}
这是error
对象调试说明:
Printing description of error:
Error Domain=NSCocoaErrorDomain Code=1620 "The operation couldn’t be completed. (Cocoa error 1620.)" UserInfo={NSValidationErrorObject=<SomeEntity: 0x7876eed0> (entity: SomeEntity; id: 0x7876d970 <x-coredata:///SomeEntity/tEAD37BAD-81E7-47AE-A182-E35D9BCC69DB2> ; data: {
count = "-1";
someUUID = "CD69E59E-B8AD-4615-8257-1F1BD6632B3E";
}), NSValidationErrorKey=count, NSLocalizedDescription=The operation couldn’t be completed. (Cocoa error 1620.), NSValidationErrorValue=-1}
于 2016-03-28T10:07:57.463 回答
0
我做了一个游戏并用它来记分:
var Score: Int = 0 {
didSet {
ScoreLabel.text = "Score: \(Score)"
}
}
您可以在其中添加一个 if 语句来隐藏标签:
Label.text = Score
If score < min {
Label.hidden = true
}else{
Label.hidden = false
}
于 2016-03-28T10:01:11.970 回答