Ios 如何识别显示为空括号的空NSData对象?
我正在处理Game Kit的GKTurnBasedMatch类(请参阅)中的一个损坏问题,该问题有时会导致无效的游戏状态和损坏的匹配数据 因此,作为一种解决方法,我正在创建一种方法来识别这些无效匹配,以便能够适当地处理它们。损坏的matchData似乎是一种很好的方法。然而,到目前为止,我还无法识别他们。当我这样做时:Ios 如何识别显示为空括号的空NSData对象?,ios,nsdata,gamekit,null,gkturnbasedmatch,Ios,Nsdata,Gamekit,Null,Gkturnbasedmatch,我正在处理Game Kit的GKTurnBasedMatch类(请参阅)中的一个损坏问题,该问题有时会导致无效的游戏状态和损坏的匹配数据 因此,作为一种解决方法,我正在创建一种方法来识别这些无效匹配,以便能够适当地处理它们。损坏的matchData似乎是一种很好的方法。然而,到目前为止,我还无法识别他们。当我这样做时: // "match" is an existing GKTurnBasedMatch object NSLog(@"match data is: %@",[match match
// "match" is an existing GKTurnBasedMatch object
NSLog(@"match data is: %@",[match matchData]);
NSLog(@"match data is nil? %@",[match matchData] == nil ? @"YES" : @"NO");
NSLog(@"match data equals empty nsdata? %@",[match matchData] == [NSData data] ? @"YES" : @"NO");
我得到以下信息:
match data is: <>
match data is nil? NO
match data equals empty nsdata? NO
匹配数据为:
匹配数据为零?不
匹配数据等于空数据?不
因此,匹配数据显示为一对空括号“”,我希望可以识别为nil,但显然不是
顺便说一句,我正在NSData属性下的核心数据实体中存储此匹配数据。当我保存NSManagedObjectContext,然后记录NSManagedObject以查看其中的内容时,所讨论的NSData属性仍然显示为“”
但是,如果我随后创建一个新的NSManagedObjectContext,从中检索相同的NSManagedObject,然后记录其值,那么NSData属性现在显示为nil
因此,在某个时刻,核心数据似乎正在“清理”其popernil值的属性。我的问题是,在我将该值添加到核心数据存储时,我实际上需要在该点之前将其标识为nil
[NSData data]
返回一个新的NSData
对象,该对象永远不会==现有对象。要检查它是否为空NSData,请执行以下操作:
[[match matchData] isKindOfClass:[NSData class]] && match.length == 0
您正在对上一个案例中的对象实例进行比较。这两个实例都可能为空,结果可能不为真 试试这个:
NSLog(@"match data equals empty nsdata? %@",[[match matchData] length] == 0 ? @"YES" : @"NO");
CoreData不会更改您在
NSManagedObject
实例上设置的值。您必须设置空的NSData
值
要检查它是否为空数据,请检查其
length
属性。空时应为0。也有同样的问题。完美答案。