Objective c 都是",;核心(基础、数据、图形等)。”;用类似C的语法编写?

Objective c 都是",;核心(基础、数据、图形等)。”;用类似C的语法编写?,objective-c,macos,Objective C,Macos,我相信这个问题不言而喻,我知道对你们中的许多人来说,这个问题可能显得有些迟钝。我只是想知道,在Objective-C中,以Core开头的所有内容是否都是用普通的C编写的 我的猜测是“是的,是的。”,但我想确保100%;) 非常感谢 编辑:看着答案,我现在意识到我应该询问Core库中的语法 它是否总是像语法一样:voidmyfunction(intnum)和非-(void)myFunction:(int)路径 到目前为止,在Obj-C中,我不太喜欢的一件事是将()/dot/->语法与[]语法混合

我相信这个问题不言而喻,我知道对你们中的许多人来说,这个问题可能显得有些迟钝。我只是想知道,在Objective-C中,以
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)。只要