【问题标题】:Secure Scoped Bookmark in plain C纯 C 中的安全范围书签
【发布时间】:2017-01-27 02:44:41
【问题描述】:

我正在尝试创建一个管理安全范围的书签,但只需要使用纯 C,即在纯 C 文件中使用 Objective-C。

这是可行的还是我应该放弃?

有什么建议吗? 我可以在 C 函数中调用 Obj-C 函数并将文件保存为 .c 吗?

提前谢谢大家, 尼古拉斯

【问题讨论】:

    标签: objective-c c macos entitlements


    【解决方案1】:

    我无法想象当您有对 Objective-C 的支持时,为什么您只想使用 C。但如果你真的想这样做,那么一个有效的方法是使用CoreFoundation 支持NSURL 和内存管理。

    所有网址CoreFoundation函数都可以在here找到。

    关于内存管理,您可能对CFRetain/CFRelease 函数感兴趣,这些函数在here 中有很好的描述。

    基本上,如果C 是您想要的全部,那么CoreFoundation 是一个好的开始,因为它支持许多Cocoa/CocoaTouch 类型。

    【讨论】:

    • 我正在使用不支持 Ocbjective-C 的第 3 方编程环境进行开发。所以,我正在为类似的事情尝试很长的路要走。谢谢你的信息,我会调查的。尼克
    • @NikolasKon 然后CoreFoundation 是您需要的框架。如果您的开发环境允许重新链接它,当然:)
    • 据我了解,我现在应该使用CoreFoundationCFURLCreateBookmarkData 而不是bookmarkDataWithOptions,在Security-Scoped Bookmarks and Persistent Resource Access 中引用。我还没试过,但现在清楚多了,你真的帮了我很多。谢谢!
    • @NikolasKon 很高兴我能帮助你。如果您觉得我的回答有用,您可以接受/投票。
    【解决方案2】:

    这是可行的,但它与编译器为您完成的工作基本相同。而且你不能使用 ARC。

    我发现最好的文档位于 objc 包含文件夹的头文件中。

    例如在#include <objc/message.h 中查找objc_msgSend 的变体

    【讨论】:

      猜你喜欢
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      相关资源
      最近更新 更多