通过做一些iOS开发,我发现有些事情必须在C中完成。例如,目前在Objective-C中没有地址簿API。
既然Swift已经出局了,那么什么框架已被移植到它?我似乎无法找到一份清单。我知道你可以从Swift调用Objective-C方法但我不认为你可以从Swift调用C语言。 Apple是否计划将仅C框架移植到Swift或至少是Objective-C?我并不特别喜欢将项目撒上三种不同语言的想法,因为很难找到人来维护它。
编辑:将C ++更改为C
答案 0 :(得分:2)
这个问题是虚假的,因为它的前提是假的。使用Swift中的地址簿框架没有问题。由于记忆管理问题,这是一个痛苦的屁股,但它是完全可行的。有关示例,请参阅https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch18p713addressBook/ch31p973addressBook/ViewController.swift
我已经在Swift中重写了我的所有代码,总的来说,除了一些非常小的动作,例如指定属性@dynamic
之外,我无法做任何本机操作。 Objective-C意义上的,或者定义并传递一个指向C函数的指针,它们都需要使用Objective-C。
您不理解C文档不应与需要移植的框架混淆#34;。它不需要移植"。没有什么需要移植"。 Swift的重点在于它与API的接口。
答案 1 :(得分:1)
iOS Developer Library 是所有iOS框架文档的良好起点,例如该 ABAddressBook Reference
Apple更新了框架文档,以显示(Objective-)C和 Swift界面,如果可用:
答案 2 :(得分:1)
例如,地址簿API当时不可用 目标C
Objective-C是C的超集,这意味着C中可用的任何API都可以在Objective-C中使用。
你的意思是没有基于类的API。
既然Swift已经出局了,那么哪些框架已被移植到它?
所有Cocoa框架都可以直接在Swift中导入。如果你把它放在桥接头中,可以在Swift中使用任何自定义C或Objective-C API。这并不代表那些API被移植到Swift&#34 ;;相反,Swift可以导入C和Objective-C API。