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

2024-02-08

我正在处理 Game Kit 的 GKTurnBasedMatch 类中的损坏问题(请参阅这个线程 https://stackoverflow.com/questions/15373903/removing-a-gkturnbasedmatch-which-is-in-an-invalid-state/15725033)有时会导致无效的游戏状态,并且比赛数据已损坏。

因此,作为一种解决方法,我正在创建一种方法来识别这些无效匹配,以便我可以适当地处理它们。损坏的 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 时,然后对 NSManagedObject 进行 NSLog 以查看其中的内容,即有问题的 NSData 属性still显示为“”!

但是,如果我随后创建一个newNSManagedObjectContext,从中检索相同的 NSManagedObject,thenNSLog 其值,NSData 属性现在显示为nil.

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


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

尝试这个:

 NSLog(@"match data equals empty nsdata? %@",[[match matchData] length] == 0 ? @"YES" : @"NO");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何识别显示为空括号的空 NSData 对象? 的相关文章

  • iOS 如何触发视频退出全屏后继续播放?

    我正在构建一个在 iOS 中播放视频的网站 我有一个在 iOS 中工作的全屏按钮 但是退出全屏时视频会暂停 有谁知道一种方法可以强制视频在退出全屏时继续播放 或者如何设置一个侦听器来触发视频在退出全屏时自动播放 这是我的代码
  • 使用 BGTaskScheduler 进行后台获取与调试模拟完美配合,但在实践中却不起作用

    我在 appDelegate 的 didFinishLaunchingWithOptions 中注册后台获取任务 BGTaskScheduler shared register forTaskWithIdentifier Backgroun
  • Swift:协议、结构、类

    我开始学习 Swift 语言 但在理解协议 结构和类方面遇到了困难 我来自 Android 方面的编程 所以我相信 Swift 协议基本上是 Java 接口 其中每一个的正确用例是什么 这些类比并不 完全 正确 但这就是我所理解的要点 是的
  • removeItemAtPath 完成

    我正在以这种方式删除路径上的文件 UIPanGestureRecognizer gesture UIPanGestureRecognizer sender UIButton button UIButton gesture view UIPa
  • 如何在Sprite Kit中实现鼠标关节?

    我已经在 iOS 上用 Cocos2d Box2d 编写了拖放功能的工作实现 我需要将它移植到 Sprite Kit 逻辑非常基本 当用户触摸屏幕时 找到手指下的精灵 在找到的精灵和场景的物理体之间创建鼠标关节 将关节的目标设置为触摸位置
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • 下载进度条在 iOS 企业发行版中没有改变进度

    我正在通过企业分发开发和分发 iPad 应用程序 它们下载并执行良好 因此一切正常 Web 链接 ipa 文件 plist 文件 配置 问题 是 当用户单击链接进行下载时 iPad 中显示下载进度的进度条显示 正在等待 但却是空的并且永远不
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且
  • 开发者可以在 Windows 应用程序中使用 iCloud 吗?

    开发人员可以使用 Apple 的 iCloud API 在 Mac OS X 和 iOS 上的不同版本的应用程序之间同步应用程序数据 如果开发人员拥有 Windows 版本的应用程序 该版本是否也可以使用 iCloud 将应用程序数据与 M
  • iOS 上的 OpenCV - VideoCapture 属性始终返回 1

    我一直在尝试构建一个简单的 OpenCV iOS 应用程序 该应用程序从捆绑包中加载视频并查询其帧数 持续时间等 然后它将尝试从中获取各个帧 不幸的是 当我使用VideoCapture类中 所有属性返回值 1 然后我尝试导航到frame 1
  • 使 iOS 应用程序与 iPhone 6 和 iPhone 6 尺寸兼容 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我创建了一个应用程序 其中使用 xib 进行布局 目前我使用两种不同的 xib 一种用于iPhone4 320 480 一种用于iPh
  • 为 iOS 应用程序加载基于 SVG 的图像资源

    我从 thenounproject 购买了一个图标作为 SVG 图像 然后我使用一个名为的 macOS 程序Gapplin http gapplin wolfrosch com 将此 SVG 导出为 PNG 图像 它显示为 100x100
  • 使用 AVFoundation 裁剪 AVAsset 视频

    我在用AVCaptureMovieFileOutput录制一些视频 我使用显示预览层AVLayerVideoGravityResizeAspectFill稍微放大 我遇到的问题是最终的视频较大 包含预览期间不适合屏幕的额外图像 这是预览和生
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • 以编程方式从底部裁剪图像

    我正在开发自定义相机应用程序 一切进展顺利 但我在从底部裁剪图像时遇到了问题 即 裁剪后的图像与原始图像具有完全相同的宽度 但高度将为原始图像的 1 3 并且必须从底部开始 斯威夫特3解决方案 func cropBottomImage im
  • NSTimer 不触发选择器

    在带有 ARC 的 ios5 0 中 在我的 rootviewcontroller 中 我调用由应用程序委托持有的安全管理器对象中的方法 在该方法中 我设置计时器如下 NSTimer timer NSTimer scheduledTimer
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • 企业发行版在 Swift 应用程序中与 iOS8 配合不佳

    我在使用 swift 应用程序在 iOS 8 设备上运行 Enterprise 版本时遇到问题 如果我使用非企业帐户进行代码签名 它似乎工作正常 有人遇到这个问题吗 以下是我在尝试使用企业帐户运行构建以进行协同设计时在 iOS 设备上收到的

随机推荐

  • JavaScript 继承属性默认值

    考虑使用下面的代码 function Employee this id this name this gender function Programmer this expertise Programmer prototype new Em
  • 检测到损坏的 ffmpeg 默认设置

    我在使用 X264 Fourcc 编解码器的 VideoWrite 时遇到 ffmpeg 错误 我已经安装了所有依赖项 如何纠正此问题 我一直在使用的示例代码如下 VideoWriter oVideoWriter path mp4 CV F
  • 在组合框中滑动文本

    我想在组合框中滑动所选项目的文本 选取框文本 如果它的长度大于组合框的宽度 它可以是自动的 也可以是当用户将鼠标放在组合框上时 问题是我完全不知道该怎么做 也许可以通过渲染转换 其中文本块的先前定义 来做到这一点 或者有故事板 这是我需要修
  • 实体公共字段的学说继承

    我在我的 Web 项目中使用 Zend Framework 3 和 Doctrine ORM 我的应用程序中有几个模块 User Stock Sales 以及每个模块上的一些实体模型 User模块实体 User Account etc St
  • 在散景图中创建两线图例

    我正在尝试创建一个散景图 上面有很多单独的线条 准确地说是 14 条 不是我的想法 被告知要这样做 问题是 所请求的格式具有沿图表底部水平的图例 并且它太长而无法容纳 所以我需要它是两行 但我似乎找不到任何关于如何执行此操作的指示 希望有人
  • 使用dynamic_cast 和模板时,为什么会收到错误“A 是 B 的不可访问的基础”?

    为什么打电话给f没有解决第一个函数重载问题 我收到错误 source cpp In function int main source cpp 12 31 error A is an inaccessible base of B class
  • Material-ui 类名称在构建时更改,为每个由用户覆盖的类名称添加标识符

    问题是当使用classes blah blah 时 它在本地工作正常 而且默认材质类名称没有标识符 但是在其他一些机器上 CSS 损坏了 在检查出了什么问题之后 我开始知道 className 生成器或我不知道的东西 通过向我使用的 cla
  • 切换到 Xcode 8.2.1 会导致 BRCloudDocsErrorDomain

    当我从 Xcode 7 3 1 切换到 Xcode 8 2 1 时 当我第一次尝试保存 通过 Cmd s 时 出现以下错误 错误 无法获取 URL 的容器 file Users bob Desktop 错误 错误域 BRCloudDocsE
  • Graphene Django - 一对多关系外键的突变

    我想知道如何正确创建突变来创建这个 django 模型 class Company models Model class Meta db table companies app label core default permissions
  • 获取谷歌地图中的当前位置并将其传递给javascript中的变量

    我想在谷歌地图中显示从当前位置到已知位置的方向 我的代码如下所示
  • 您可以冻结 C/C++ 进程并在不同的主机上继续它吗?

    我想知道是否可以生成一个 核心 文件 将其复制到另一台机器 然后继续在那台机器上执行核心文件 我见过 gcore 实用程序 它可以从正在运行的进程中生成核心文件 但我不认为gdb可以基于核心文件继续执行 有没有什么方法可以转储堆 堆栈并在以
  • TFS 构建自动化

    我有 TFS 2010 构建一个项目解决方案 它是一个复印机 构建成功但什么也没做 即 不复制 我如何让触发的构建来复制文件 Thanks 我有 TFS 2010 和 VS professional 2010 EDIT Update 复印机
  • 无法从 Servlet 过滤器内的 FacesContext 检索会话

    对我的用户进行身份验证后 我想在会话中添加对当前登录用户的引用 这是我如何做到的setCurrentUser方法 FacesContext facesContext FacesContext getCurrentInstance HttpS
  • Google oauth2client 出现 EOF 错误(Python、google-app-engine)

    我目前在我的 Python Web 应用程序中使用 oauth2client 以便使用 Google 的日历 API 我将 oauth2client 复制到目录的根文件夹中 然后按照以下说明进行操作https developers goog
  • 如何使用 SendKeys 将模拟键盘敲击发送到活动窗口

    我是 Python 新手 正在尝试将击键组合发送到我在 Windows 7 下打开的应用程序 虽然当我出于测试目的调用 Notepad exe 时 我的脚本可以完美运行 但它不适用于我正在尝试的实际应用程序使用 到目前为止 这是我的代码 i
  • 是否可以在容器组件的函数之间传递 React 组件作为参数

    将子组件作为参数传递给父组件的函数并尝试渲染不起作用 React Container Component Import Both Views and Render based on preference import PosterView
  • Windows Chrome 扩展本机消息传递只能接收第一个响应

    我正在尝试使用本机消息传递将一些数据发送到我的本机 Windows 应用程序 它与runtime sendNativeMessage 方法配合得很好 当我尝试使用使用端口的长期连接时 它也可以将数据从 Chrome 传递到我的应用程序 但是
  • 使用包含 $$ 字符的 SQLExec 执行文件

    我使用 pg dump 创建了一个 sql 转储文件 此导出文件包含包含 字符的函数 使用 psql f 导入文件没有问题 如果想使用 SQLExec 任务通过 ant 导入文件 我会得到如下异常 org postgresql util P
  • 来自上传文件的数据

    我有一个代码 其中包含上传到文件夹的文件数量 我希望将这些文件的名称 大小和 URL 存入数据库 但我的控制器无法正常工作 我使用 CakePHP 框架 我想将这些文件数据添加到数据库中 所有文件数据 但出现错误 Error Notice
  • 如何识别显示为空括号的空 NSData 对象?

    我正在处理 Game Kit 的 GKTurnBasedMatch 类中的损坏问题 请参阅这个线程 https stackoverflow com questions 15373903 removing a gkturnbasedmatch