2016-03-28 177 views
0

if set min。属性值为“X”等于1.比某些情况下,值为0,模型将如何表现?抛出错误/警告?我的场景是我想在标签中显示消息的数量,但是当没有消息时,零点出现在视图中。而不是代码,我只想尝试通过xcmod​​el(如果可能的话),即如果计数小于最小值。该属性的值然后标签应该隐藏。它在第一次运行时隐藏,如果为零但视图控制器的一些过渡运动导致更新该计数标签导致零显示。iOS中xcdatamodel属性的最小值是什么意思?

回答

0

我已经做了一个游戏一个人的,并用它进行计分:

var Score: Int = 0 { 
    didSet { 
     ScoreLabel.text = "Score: \(Score)" 
    } 
} 

,你可以把一个if语句在它隐藏标签:

Label.text = Score 
If score < min { 
Label.hidden = true 
}else{ 
Label.hidden = false 
} 
0

核心数据不会让如果值在建模数据时超出了设置的边界,则可以保存上下文。

实体名称为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} 
0

Core Data Programming Guide

验证约束应用由核心数据仅在保存 操作或根据请求

所以有可能的NSManagedObject属性设置为小于规定的最小的值(你可以在它是有道理的应用程序流量任何时候直接调用验证方法 ),但它会情况下, NSError期间NSManagedObjectContext保存。

至于你的确切情况,如果没有查看你的数据模型和代码,很难给你一个建议。我可能会推荐你调试你的视图控制器转换和查看更新(因为你说某些特定的转换序列导致视图行为不正确)。

相关问题