如何将dispatch_data_t转换为NSData?

2023-11-21

这是正确的方法吗?

// convert
const void *buffer = NULL;
size_t size = 0;
dispatch_data_t new_data_file = dispatch_data_create_map(data, &buffer, &size);
if(new_data_file){ /* to avoid warning really - since dispatch_data_create_map demands we care about the return arg */}

NSData *nsdata = [[NSData alloc] initWithBytes:buffer length:size];

// use the nsdata... code removed for general purpose

// clean up
[nsdata release];
free(buffer); // warning: passing const void * to parameter of type void *

它运行良好。我主要担心的是内存泄漏。泄漏数据缓冲区并不好玩。那么 NSData、缓冲区和dispatch_data_t new_data_file 都好吗?

从我能读到的内容来看http://opensource.apple.com/source/libdispatch/libdispatch-187.7/dispatch/data.c看来缓冲区是 DISPATCH_DATA_DESTRUCTOR_FREE。这是否意味着我有责任释放缓冲区?


自 iOS 7 和 macOS 10.9 (基金会发行说明) dispatch_data_t是一个 NSObject (NSObject <OS_dispatch_data>)在 64 位应用程序中。

dispatch_data_t现在可以自由投射到NSData *, 尽管反之则不然.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将dispatch_data_t转换为NSData? 的相关文章

  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • UINavigationController 在后退按钮单击时向下滚动

    我正在开发一个带有多个导航控制器的 iPhone iPad 应用程序 当我在设备处于横向模式时单击视图的后退按钮时 前一个视图会垂直滚动到屏幕中 而不是像往常一样水平滚动 推送动画始终水平工作 正如它应该的那样 是什么导致了这个奇怪的问题
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 如何在 folium.circle 地图 python 中的每个圆圈上添加标签

    嘿 我正在尝试将标签添加到 folium circle 地图中 但由于某些原因它不起作用 任何人都可以提供帮助 这是我的地图脚本 import folium Make an empty map m folium Map location 5
  • 同步块可以比 Atomics 更快吗?

    假设以下两个计数器实现 class Counter private final AtomicInteger atomic new AtomicInteger 0 private int i 0 public void incrementAt
  • Visual Studio 2017 (.NET Core) 中的自动版本控制

    我花了几个小时的大部分时间试图找到一种在 NETCoreApp 1 1 Visual Studio 2017 中自动递增版本的方法 我知道 AssemblyInfo cs 是在文件夹中动态创建的 obj Debug netcoreapp1
  • 已编译的 iOS 应用程序 (IPA) 中的内容加密

    由于IPA结构只是一个包含编译代码和图像和音频等媒体内容的压缩文件 我如何保护内容不被他人提取和窃取 我可以在 IPA 中添加任何加密吗 这个答案提到应用程序在进入用户设备时已经加密 Apple 是否会修改提交到 App Store 的应用
  • WebRTC:确定 PeerConnection 中使用哪个 TURN 服务器

    场景 您想知道 TURN 服务器是否用于特定呼叫 以及您在创建 PeerConnection 期间提供的 TURN 服务器数组中的哪一个正在使用 现在有两个选择 Wireshark 但是当您位于公司代理后面并且 TURN 服务器位于其外部时
  • 错误:[ProxyFacade] 不是 组件。 的所有子组件都必须是

    我在 React 17 中使用 react router dom 6 0 2 我正在使用打字稿 我试图添加路线 但出现错误 未捕获的错误 ProxyFacade 不是组件 的所有子组件必须是 a 或 我不知道出了什么问题 有什么我错过的吗
  • 将媒体查询与限定选择器相结合的语法

    在我们当前的设计中 表单元素在移动设备上的样式有所不同 media screen and max width 759px form label display block float none There s more 鉴于屏幕空间有限 我
  • 是否可以使用 ImageMagick 渲染多色表情符号?

    我的文本可能包含表情符号 我想用 RMagick 将其渲染成 JPEG 图像 我也可以直接使用 ImageMagick 我只能使用 AndroidEmoji ttf 渲染单色表情符号 但如果我使用 AppleColorEmoji ttf I
  • 在Java中,为什么String是非原始数据类型?

    在Java中我们可以直接使用String声明字符串变量名称并指定其值 即使 String 是非原始数据类型 我们也不必使用 new 关键字将字符串定义为数组 有人可以解释一下为什么 String 是非原始数据类型吗 字符串是非原始的 因为只
  • 使用 CreateProcessAsUser 时等待进程退出

    我在用着创建进程为用户在 C 中通过服务启动进程 我的服务需要等待进程退出 但我不知道该怎么做 我不想检查进程列表中的进程是否存在 The 处理信息返回新创建进程的句柄 hProcess 您可以等待此句柄 当进程退出时 该句柄将发出信号 您
  • 如何在 Visual Studio 中设置项目引用的“特定版本”属性

    我有一个包含多个项目的 Visual Studio 解决方案 并将项目之间的引用设置为项目引用 添加对程序集的引用后 引用的属性包含以下设置 Specific Version True False 项目引用缺少此属性 怎么设置呢 我希望我的
  • REGEX - 允许数字和 . - /

    我需要一个正则表达式来只允许数字和 它应该允许这样的事情 011 235673 98923 0001 12 您正在寻找的模式 仅与带有数字 和 的字符串匹配 0 9 如果您有一种特定的语言 并且想要实现这一点 我也许可以帮助您
  • 从 Socket 使用 InputStream 时 Scanner.nextLine() 会阻塞

    当我使用接收数据时Socket getInputStream 直接 没有像扫描仪这样的接口 它不会阻塞 但是 当我尝试使用扫描仪时 类似于我们从System in 确实如此 我想知道这样做的原因 以及连接的 Socket 提供给您的 Inp
  • 如果值匹配,则将单元格数据连接到另一个数据

    我有两个columns A and B在同一个 Excel 工作表中 我正在尝试如果在Column B两个值匹配 那么它应该复制相关值A在同一行 For e g Table Column A Column B xyz 1 abc 1 pqr
  • 将事件保存到用户的日历

    如何将事件添加到用户的日历中 然后允许用户选择日历等 我有这段有效的代码 但这会将事件添加到用户的默认日历中 如何允许用户更改日历 自定义警报等 我见过其他应用程序打开日历应用程序并预 先填写字段 add to calendar let e
  • 使用 Python 2.x 中的“is”运算符将对象与空元组进行比较

    我看惯了if obj is None 在Python中 我最近遇到if obj is 由于元组是不可变的 这听起来像是 Python 解释器中合理的内部优化 让空元组成为单例 因此允许使用is而不是要求 但这在某个地方得到保证吗 从哪个版本
  • 使用多个键排序时反转特定键

    当使用多个键排序时 如何反转单个键的顺序 例如 vec sort by key k foo k reverse bar k 您可以使用sort by与Ordering reverse代替sort by key use std cmp Ord
  • Rails 3:如何通过javascript触发表单提交?

    我有一个表单 大部分只是作为普通表单提交 所以我不想在 form tag 中设置 remote gt true 选项 然而 在某些情况下 我希望能够有一个 javascript 函数发布表单 就像它是通过 remote gt true 发布
  • ASP.NET Identity - 使用安全标记强制重新登录

    So from ASP NET Identity 的 IUserSecurityStampStore 接口是什么 我们了解到 ASP NET Identity 具有安全标记功能 用于使用户登录 cookie 无效 并强制他们重新登录 在我的
  • 如何将dispatch_data_t转换为NSData?

    这是正确的方法吗 convert const void buffer NULL size t size 0 dispatch data t new data file dispatch data create map data buffer