- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
接受的答案给了我对问题的正确解释。我还编辑了问题,用大写字母逐点回答问题
我在 MacOSX 中有一个 c++ 代码,它使用了一点 CoreFoundation。
我在我的代码中使用了以下函数 CFPropertyListCreateWithData
,该函数将 CFErrorRef *error
作为其参数之一。好吧,我创建了 CFErrorRef myError
并将其作为 &myError
第一个问题: 我认为 Documentation 中存在错误,因为它给了我一些好的结果数据,但错误不是 NULL。如果我有错误,数据应该是 NULL,不是吗?还是我误解了文档?
第一个解决方案:如果没有错误,错误是未定义的,所以我必须仅在数据为空时检查错误。此外,我正在使用 CFRelease
发布一个 undefined object ,该错误导致我的程序因段错误而崩溃
第二个问题:我想检查是哪个错误。好吧,我进入这个函数 CFErrorCopyFailureReason
, doc here , 但它需要一个 CFError 而不是 CFErrorRef,并给我一个 CFString。那么,如何将我的 CFErrorRef 转换为 CFError?
第二个解决方案:NOSENSE 问题,我正在阅读 SWIFT 而非 Objective-C 的文档
第三个问题:函数CFErrorCopyFailureReason
给我一个CFString
,但我不知道CFString
在哪里被定义为!它不在 CoreFoundation/CoreFoundation.h
中,也不在 CoreFoundation/CFString.h
中,而且我在尝试编译时出现未定义类型错误。那么: CFString
是在哪个文件中定义的?我可以将它转换为 CFStringRef
吗?我该怎么做?
第三个解决方案:NOSENSE 问题,我正在阅读 SWIFT 而非 Objective-C 的文档
第四个问题:对于我的代码,如果我使用CFStringRef
和CFErrorRef
而不是CFString
并且CFError
,它可以编译,但是我有一个 NSInvalidArgumentException
。我不应该在编译时出错吗?我不喜欢 RunTimeException...
第四种解决方案:正如答案让我理解的那样,只有当数据为空时我才需要检查错误。在那种情况下,我正在检查一个带有未定义数据的错误,该错误使我出现了无效参数异常。显然,由于问题是错误中未定义的值,因此这是一个运行时异常
总而言之,我只想在我的 C++ 应用程序中读写一个 Info.plist
文件。我从中得到灵感,Saving and Restoring Property Lists ,示例代码并对其进行了相当多的修改。如果您有如何读取和修改 Info.plist
文件的工作示例,请告诉我 :) 但请不要使用 PlistBuddy 或其他工具,仅使用 c++ API。
结论:示例代码运行良好,我只是误解了文档
谢谢大家
最佳答案
我认为您误解了 CFPropertyListCreateWithData()
的文档:如果成功,则返回值为非 NULL,并且 error
指向的内容未定义。不要担心错误
,除非CFPropertyListCreateWithData()
返回NULL。
CFErrorCopyFailureReason()
接受一个 CFErrorRef
并返回一个 CFStringRef
。您可能正在查看它的 Swift 文档,在文档页面顶部将语言更改为 Objective-C。
哪个调用抛出异常,CFPropertyListCreateWithData()
?
关于c++ - 在 C++ 中将 CFString 转换为 CFStringRef 并将 CFErrorRef 转换为 CFError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45615422/
考虑一些涉及错误处理的典型 CF 代码,像这样说: ABRecordRef aRecord = ABPersonCreate(); CFErrorRef anError = NULL; ABRecor
我有一个通过引用返回 NSError 对象的函数: NSData *foo(NSData *foo, NSError *__autoreleasing *outError); 此函数使用一个 API,
我需要阻止在我们的应用程序中显示联系人组,但是从地址簿中简单地删除组对用户来说是侵入性的。因此,我试图在显示联系人之前删除它们,然后在完成后将它们添加回去,以便地址簿保持不变并且 iOS 联系人应用程
我正在尝试使用 Ruby Motion 向地址簿添加条目。我不知道如何正确实例化 CFErrorRef 参数。 error = nil # compiles but won't capture an
我曾经像这样将 NSError 转换为 CFErrorRef 并在 SMJobBless 中使用它 NSError *error BOOL removed = SMJobRemove(kSMDomai
接受的答案给了我对问题的正确解释。我还编辑了问题,用大写字母逐点回答问题 我在 MacOSX 中有一个 c++ 代码,它使用了一点 CoreFoundation。 我在我的代码中使用了以下函数 CFP
我是一名优秀的程序员,十分优秀!