问题标签 [cfstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
363 浏览

iphone - 变量不是 CFStringRef

我有这个:

并获得这样的 NSString:

在某些情况下使用这个 NSString 之后,我得到了这个愚蠢的错误:

但是如果我这样创建 NSString :

endPoint = @"48.8160525,2.3257800"然后它就完美了!

对于这个错误Variable is not a CFString,我尝试了以下方法:

并尝试使用endPoint但不以这种方式工作。有人有什么神奇的想法吗?谢谢

0 投票
0 回答
815 浏览

objective-c - -[CFString hash]: 消息发送到解除分配的实例

我正在尝试EKEvent从 Event Store 中获取 s 以填充 aUITableView并显示月份列表视图。

基本上它可以工作,我正在这样做:

reloadEvents从内部调用

由于获取事件是同步发生的并且它会锁定那个时间的 UI,我正在使用 GCD。这些NSDate零件是我自己的分类NSDate

现在,当我的视图控制器加载时,会从事件存储中获取事件并正确显示。视图控制器也会监听EKEventStoreChangedNotification,这就是我的应用程序崩溃的地方。当我在我的应用程序之外更改事件时,它会收到通知并尝试重新加载事件数据,但随后......

*** -[CFString length]:发送到已释放实例 0x666f530 的消息

编辑 我已更改reloadEvents为以下内容:

有了这个,应用程序不会再崩溃了。似乎有些东西发生了变化calendarA,因此该条目已经被释放(在找到问题的原因之后,这绝对是合乎逻辑的)。

0 投票
1 回答
266 浏览

cocoa - 将 CFStringRef 指针传递给 MacRuby 中的 C 函数

我想从 OS X 的 DVDPlayback 框架中调用以下函数:

最终,我想出了以下工作代码:

但是我在任何文档中都没有找到'^{__CFString}'它,只是后来才知道它在做什么(我最初是从错误消息中剪切并粘贴它的)。我首先用 :id 和 :string 尝试了 Pointer.new,但没有成功。

所以我的问题是:

  • 获得这个指针的最佳方式是什么(我的方式看起来很丑)?
  • 为什么没有 Pointer.new(:string) 工作?我认为 String、NSString 和 CFString 是等价的
  • 我会在哪里找到这些信息?(我查看了 MacRuby 网站,“macro Pointer”报告“Nothing known about Pointer”、~12 次谷歌点击和“MacRuby:权威指南”)
0 投票
1 回答
1800 浏览

ios5 - ios中的URL编码字符串失败

我正在尝试使用 ARC 在我的 iOS 5 应用程序中对字符串进行 url 编码。

我就是这样做的:

然后我用这样的测试数据调用它:

但我得到的输出NSLog是这样的:

这似乎不正确,但无论如何我都无法正确

0 投票
2 回答
945 浏览

iphone - [NSBundle mainBundle] 声明的 CFString 对象

我正在改进我的 ios cocos2d 游戏的性能。当我注意到一件事时,我正在借助 Instruments 工具检查应用程序的内存分配。[NSBundle mainBundle] 调用声明和持有的 CFString 对象过多。它说,

类别:CFString(不可变)负责调用者:[NSBundle mainBundle]

我的代码中有很多地方我写了以下几行

这个 CFString 问题是因为上面的代码,因为我在 pathForResource 方法中给出了一个硬编码的字符串吗?或者这个问题的原因是什么?有人可以帮忙吗?这个 CFString 分配占用了我大约 2Mb 的代码,所以我很担心。

最好的祝福

0 投票
1 回答
3361 浏览

iphone - iphone: -[CFString release]: 消息发送到解除分配的实例

我正在开发的应用程序在 iPhone 上运行时不断崩溃,但在模拟器上却没有(尽管在没有符号 malloc_error_break 的情况下运行时会显示警告,但应用程序会继续在 Sim 上运行)

我没有手动释放任何字符串,而是使用:

(我一直在为其他应用程序做这件事,从来没有给我带来问题)

现在,当我将 malloc_error_break 设置为断点时,我得到:

随着 XCODE4 跳转到:

在模拟器上运行时我也有 NSZombieEnabled

如果有人可以帮助我如何在 XCODE 4 上进行调试,或者将我指向一个在线教程,将不胜感激!

问候

大卫

0 投票
1 回答
117 浏览

iphone - 如何从 CFString 中获取特定属性

我想知道一个字符串是否是单字节编码。可以完成这项CFShowStr工作,但它会将消息输出到控制台。CFShowStr函数输出消息是这样的,项目IsEightBit是我想要的:

0 投票
3 回答
1674 浏览

macos - 将 CFStringRef 转换为 QString

跨平台 C++ 头文件。每个平台都有单独的 c++ 文件:windows、linux、mac。处理枚举窗口的特定于平台的实现。

在 mac 方面:我有一个 CFStringRef 填充。头文件定义了一个 QString 对象。我需要将 CFStringRef 的内容传递给 QString。

如何做到这一点?

0 投票
1 回答
375 浏览

ios - 无效的 CfStringRef plist(字典数组)iOS

我的文件中有以下代码

当我在调试器上运行它时,它会在 NSString *filePath 行上返回“invalid CfStringref”。

无论我尝试什么代码,我都无法通过这个。

有任何想法吗?

plist 也是一个字典数组,但我无法解析它们,因为代码不起作用

0 投票
1 回答
1523 浏览

c++ - Core Foundation 每次调用 CFSTR() 都会造成内存泄漏

我通常使用 CFSTR() 宏从标准 c 字符串创建 CFString 对象,直到经过多次测试和更好地检查文档后,我意识到每次调用此函数都会自动产生内存泄漏,该内存泄漏一直持续到程序终止。即使在应用程序关闭后,视觉泄漏检测器仍会报告内存未释放。任何对 CFRetain、CFRelease 的调用都不会影响内存。由于我进行了很多调用,我想知道是否应该使用 CFStringCreateWithCString ,与 CFSTR 不同,在调用 CFRelease 后内存被完全释放(正如内存泄漏检测工具所报告的那样)。

谢谢

更新(回复评论):我在 Windows 上,我直接从我的 c++ 应用程序中使用官方 CoreFoundation 库。为了识别内存泄漏,我使用了 OpenCfLite,因为源代码是相同的,但允许我还包含 Visual Leak Detector 标头,或者仅使用内置的 Visual Studio 泄漏检测器。当我关闭应用程序时,我会得到一份完整的报告,我可以清楚地看到内存地址及其内容。我可以从报告中看到传递给 CFSTR(=__CFStringMakeConstantString) 的相同字符串仍然位于内存地址。这似乎不是错误或我做错了什么,而只是正常行为,因为正如 Apple 所说:“CFSTR 不会释放从 CFSTR 返回的值,并且它们保证在程序终止之前有效。”

示例调用:CFSTR( "该字符串是从 __CFStringMakeConstantString 函数创建的" )

---------------这是来自 Microsoft 内置泄漏检测器的转储:--------

检测到内存泄漏!

倾倒对象 ->

c:\projects\cftest\cftest\cfbase.c(277) : {61} 位于 0x00A01648 的普通块,96 字节长。

数据:< GThis st > 00 00 00 00 8C 07 00 00 47 54 68 69 73 20 73 74

对象转储完成。

---------------这是来自 VLD 工具的转储:----------------

---------- 0x04AD2FE8 处的块 1:4096 字节 ----------

调用堆栈:

........ GThis.st

72 69 6E 67 20 68 61 73 20 62 65 65 6E 20 63 72 ring.has.been.cr

65 61 74 65 64 20 66 72 6F 6D 20 5F 5F 43 46 53 吃过。来自 .__CFS

74 72 69 6E 67 4D 61 6B 65 43 6F 6E 73 74 61 6E tringMak eConstan

74 53 74 72 69 6E 67 20 66 75 6E 63 74 69 6F 6E tString。功能

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..........

现在,我可以通过用 CFStringCreateWithCString 替换对 CFSTR 的任何调用来轻松避免上述所有问题,我确信没有内存泄漏(至少只要我记得调用 CFRelease),但我想知道为什么如果每次调用此函数都将字符串存储在内存中,那么大量代码示例显示了对 CFSTR 的大量使用,只有在程序终止时才可以释放该字符串。

谢谢