我是IOS
开发者的新手,希望使用Swift
语言代替Objective-C
。
我对Cocoa touch
的概念知之甚少,我想知道:Swift
可以执行Objective-C
可以执行的所有操作吗?
答案 0 :(得分:3)
在Objective-C中可以做很多事情,但是在Swift中无法完成,没有在Objective-C中实现它,然后在Swift中使用它。其中一些包括:
NSInvocation
,performSelector:
和其他动态调用方法forwardInvocation:
答案 1 :(得分:2)
我所知道的唯一概念是Objective-C而不是Swift,它是Key-Value Observing(KVO)。您可以使用KVO作为Swift类来观察Objective-C类的属性,但是您无法观察Swift类的任何属性。有关详细信息,请参阅this answer。
答案 2 :(得分:0)
这是一个有趣的问题,但基本上答案必须是NO,因为您可以使用bridging-headers在swift中使用Objective-C资源。 Xcode自动将Swift转换为Objective-C,反之亦然。但是,如果你不能编写Objective-C代码,那么你就不能在swift项目中包含你自己的自定义objective-c类了!
这一切都取决于你喜欢编码的方式。 Apple已经表示Objective-C仍然是一流的'语言意味着他们将在可预见的未来并肩运行Swift和Objective-C。我个人更喜欢Objective-C,因为你可以非常容易地使用C(因为在C中合法的任何东西在Objective-C中也是合法的)添加到Swift中是一种更加程序化的,其中Objective-C非常明确地面向对象。
值得注意的是,Cocoa和Cocoa Touch类都是objective-c类,因此掌握Objective-C的工作知识可能很有用。我认为到目前为止我所听到的最好的建议是,如果你有时间,可以同时学习它们!