gpt4 book ai didi

ios - 如何识别显示为空括号的空 NSData 对象?

转载 作者:可可西里 更新时间:2023-11-01 03:36:03 26 4
gpt4 key购买 nike

我正在处理 Game Kit 的 GKTurnBasedMatch 类(请参阅 this thread)中的损坏问题,该问题有时会导致无效的游戏状态和损坏的 matchData。

因此,作为一种解决方法,我正在创建一种方法来识别这些无效匹配项,以便我可以适本地处理它们。损坏的 matchData 似乎是执行此操作的好方法。但是,到目前为止,我无法识别它们。当我这样做时:

// "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,但显然不是。

顺便说一下,我将这个 matchData 存储在一个核心数据实体中,在 NSData 属性下。当我保存 NSManagedObjectContext,然后 NSLog NSManagedObject 以查看其中的内容时,有问题的 NSData 属性仍然显示为“<>”!

但是,如果我随后创建一个 NSManagedObjectContext,从中检索相同的 NSManagedObject,然后 NSLog 它的值,NSData 属性现在显示为

因此,在某些时候,核心数据似乎正在将属性“清理”为其 poper nil 值。我的问题是,我实际上需要将该值标识为 nil之前,当时我将其添加到核心数据存储。

最佳答案

您正在对上一个案例中的对象实例进行比较。这两个实例都可能为空,结果不会为真。

试试这个:

 NSLog(@"match data equals empty nsdata? %@",[[match matchData] length] == 0 ? @"YES" : @"NO");

关于ios - 如何识别显示为空括号的空 NSData 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15773440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com