gpt4 book ai didi

objective-c - Objective C 中的声明类型与实际类型

转载 作者:行者123 更新时间:2023-12-03 07:44:09 25 4
gpt4 key购买 nike

我正在调试代码中的某些内容,并意识到以下内容可以编译

NSMutableSet *s = [[NSMutableArray alloc] init];

Card *c = [[Card alloc] init];

[s addObject:c];
[s addObject:c];
[s addObject:c];

NSLog(@"Set now contains %d cards ", [s count]); //Prints 3

但是这里声明的类型是 Set ..为什么允许重复?为什么这能编译?

最佳答案

[[NSMutableArray alloc] init] 返回类型 id,这是 Objective-C 返回类型 id 的标准。在许多情况下,实际返回的类型取决于类实现,许多 Apple 提供的类是类簇并返回不同的类型。一个常见的例子是 NSString,它通常返回 NSCFString 类的实例。

谨慎匹配类名非常重要。

另请参阅 Marc Charbonneau here 的回答

关于objective-c - Objective C 中的声明类型与实际类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8251571/

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