Objective c 都是",;核心(基础、数据、图形等)。”;用类似C的语法编写?
我相信这个问题不言而喻,我知道对你们中的许多人来说,这个问题可能显得有些迟钝。我只是想知道,在Objective-C中,以Objective c 都是",;核心(基础、数据、图形等)。”;用类似C的语法编写?,objective-c,macos,Objective C,Macos,我相信这个问题不言而喻,我知道对你们中的许多人来说,这个问题可能显得有些迟钝。我只是想知道,在Objective-C中,以Core开头的所有内容是否都是用普通的C编写的 我的猜测是“是的,是的。”,但我想确保100%;) 非常感谢 编辑:看着答案,我现在意识到我应该询问Core库中的语法 它是否总是像语法一样:voidmyfunction(intnum)和非-(void)myFunction:(int)路径 到目前为止,在Obj-C中,我不太喜欢的一件事是将()/dot/->语法与[]语法混合
Core
开头的所有内容是否都是用普通的C
编写的
我的猜测是“是的,是的。”,但我想确保100%;)
非常感谢
编辑:看着答案,我现在意识到我应该询问
Core
库中的语法
它是否总是像语法一样:voidmyfunction(intnum)代码>和非-(void)myFunction:(int)路径代码>
到目前为止,在Obj-C中,我不太喜欢的一件事是将()/dot/->语法与[]语法混合在一起。我认为它真的不优雅…是的-Appkit/UIKit是建立在这之上的,他们已经做了一些技巧,使ObjC和Core*之间的交互非常有效(称为“免费桥接”)是的-Appkit/UIKit是建立在这之上的,他们已经做了一些技巧,使ObjC和Core*之间的交互非常有效(称为“免费桥接”)无意冒犯,但正确的答案是“谁在乎”?(在脸颊上插入舌头)
不过,老实说,任何系统库都可以用它们想要的任何东西编写。可能有Objy-C、C、C++和汇编程序的组合;不太可能(但技术上仍然可能)的选项包括Pascal、Fortran、徽标或手工组装的机器代码
如果您想了解系统库中代码组合的示例,请查看开源Java库。您将看到java.*
包是用java和C的组合编写的;某些端口可能包括部件的总成
只要接口是Objective-C兼容的,这就是您真正需要担心的
另外,唯一能回答这个问题的人可能在苹果公司,而且可能不被允许告诉你。恕我冒犯,但正确的答案是“谁在乎”?(在脸颊上插入舌头)
不过,老实说,任何系统库都可以用它们想要的任何东西编写。可能有Objy-C、C、C++和汇编程序的组合;不太可能(但技术上仍然可能)的选项包括Pascal、Fortran、徽标或手工组装的机器代码
如果您想了解系统库中代码组合的示例,请查看开源Java库。您将看到java.*
包是用java和C的组合编写的;某些端口可能包括部件的总成
只要接口是Objective-C兼容的,这就是您真正需要担心的
而且,唯一能回答这个问题的人可能是苹果公司的人,而且可能不允许告诉你。它是用“随便什么”(一点ObjC,一点C,一点asm)编写的,但关键是它提供的界面是纯C
我会注意到核心数据和核心映像显示了ObjC接口。它是用“随便什么”(一点ObjC,很多C,一点asm)编写的,但关键是它显示的接口是纯C
我会注意到,尽管核心数据和核心图像显示了ObjC接口。这是客观的-C;该语言是一个非常小的语法层,位于straight C之上,有一个运行库来提供动态行为
混合C和Objective-C是环境中经常遇到的自然部分
正如其他人所说,用于实现各种核心*框架的语言是一个实现细节,通常不应引起关注。话虽如此,CoreFoundation的一个规模很大且不断增长的部分是用Objective-C编写的。毕竟它是Objective-C;该语言是一个非常小的语法层,位于straight C之上,有一个运行库来提供动态行为
混合C和Objective-C是环境中经常遇到的自然部分
正如其他人所说,用于实现各种核心*框架的语言是一个实现细节,通常不应引起关注。话虽如此,CoreFoundation的很大一部分都是用Objective-C编写的。谢谢你的回答。我之所以在意,是因为我刚刚开始学习Obj-C,并且注意到对于所有Core
,我需要使用普通的()括号语法进行调用,即CFArrayRemoveAllValues(数组)代码>。我只是不喜欢将[]语法与()。真是不优雅!(这就是为什么我有“开玩笑”的评论)。从好奇心的角度来看,你应该对这项研究发狂。然而,实际上,任何库(包括系统库)的底层语言都没有区别,只要它遵循正确的界面。+1表示“谁在乎”。我建议克服这种不喜欢,或者至少学会适应它-混合属性,方法和函数调用对于Cocoa开发人员来说是一个现实。谢谢您的回答。我之所以在意,是因为我刚刚开始学习Obj-C,并且注意到对于所有Core
,我需要使用普通的()括号语法进行调用,即CFArrayRemoveAllValues(数组)代码>。我只是不喜欢将[]语法与()。真是不优雅!(这就是为什么我有“开玩笑”的评论)。从好奇心的角度来看,你应该对这项研究发狂。然而,实际上,任何库(包括系统库)的底层语言都没有区别,只要它遵循正确的界面。+1表示“谁在乎”。我建议克服这种不喜欢,或者至少学会适应它-混合属性,方法和函数调用对于Cocoa开发人员来说是一个事实。只要确保仔细检查您认为是免费桥接的每个类——有些不是(比如Cbundleref/NSBundle)。只要