gpt4 book ai didi

objective-c - 4和@4有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:06 25 4
gpt4 key购买 nike

我刚开始学习这个,教程一开始是在所有数字文字和字符串文字之前使用 @ 符号,我想“好吧,Objective-C 在文字之前使用 @ 符号,”但是接下来你我知道他们使用了一些没有@符号的数字,我完全不知所措。

(我说“数字”是因为我不敢说 int,因为 Objective-C/C 有很多类型的数字。)

有什么区别?

最佳答案

Objective C 是 C 的扩展,因此它在 C 使用文字的地方使用常规文字 - 即提供基本类型 intlong 等的值。

此外,Objective C 还支持Cocoa 框架的NSNumber 类。此类的对象用于包装原始值,以便在需要对象的地方使用 - 例如,放入集合中。 Cocoa 集合不接受原始类型的值,因此您需要在将数值放入集合之前提供一个对象包装器。

Objective C 不支持生成 NSNumber 类型的文字,因此您需要手动包装文字,如下所示:

[NSNumber numberWithInt:4]

输入太多,尤其是当您需要定义多个这样的值以放入集合中时。这就是为什么 Objective C 添加了另一种语法来创建 NSNumber - 带有 @ 符号的语法。因此,当您编写 @4 时,这与编写 [NSNumber numberWithInt:4] 相同,但输入更少。例如,在旧语法中看起来像这样的初始化

NSArray *oneTwoThree = [NSArray arrayWithObjects: [NSNumber numberWithInt:1], [NSNumber numberWithInt:2], [NSNumber numberWithInt:3], nil];

现在看起来像

NSArray *oneTwoThree = @[@1, @2, @3];

这更具可读性。

注意:第二个代码片段也使用了数组初始化的新语法。

关于objective-c - 4和@4有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22187750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com