gpt4 book ai didi

objective-c - 在 block 参数内向下转换是一种不好的做法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:55 24 4
gpt4 key购买 nike

举个例子,不要这样写:

NSArray *someArray = @[@"1", @"2", @"3", @"4"];
[someArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *aString = obj;
// do something
}];

如果你知道 block 方法中的常量,你可以直接向下转换对象以使其更简洁:

[someArray enumerateObjectsUsingBlock:^(NSString *aString, NSUInteger idx, BOOL *stop) {
// do something
}];

这是否违反任何最佳实践或 oop 原则?

最佳答案

我很确定这没问题。只要您知道数组中的内容,就可以随意静态键入 id 参数。无论如何,它在一天结束时主要是语法糖。我总是静态地输入任何我能输入的东西。它可以帮助我发现错误并使内容更易于阅读。此外,正如 H2CO3 指出的那样,可以将对象分配给一个 id 并且无需强制转换即可返回。

关于objective-c - 在 block 参数内向下转换是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13423478/

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