gpt4 book ai didi

objective-c - 寻找更好的方法来测试对象的类类型

转载 作者:行者123 更新时间:2023-12-03 16:53:07 26 4
gpt4 key购买 nike

在 Excel 中使用 Scripting Bridge 时,当我获取单个单元格的值时,我不知道将从该单元格获取什么类。到目前为止,单个单元格的范围返回 NSStringNSNumber (多个单元格的范围始终返回 NSArray 并且我需要强制值从那里)。在我的工作中,我通常只想要单元格的 string 值,因此为了将单个单元格范围的值强制转换为我需要的值,我这样做...

NSString *cellValue = [targetRange.value get];
if ([cellValue isKindOfClass:[NSString class]]) {
cellValue = [targetRange.value get];
} else if ([cellValue isKindOfClass:[NSNumber class]]) {
cellValue = [[targetRange.value get] stringValue];
}

我的问题在于第一行(我们暂时忽略第三行,因为我仍在进行一些重构)。是否有更好的类来捕获单元格的值来测试类?最后三行工作正常,但我觉得这样做不太舒服;这看起来不直观,但使用 NSObject 感觉也很奇怪。

最佳答案

it seems unintuitive but going with NSObject feels just as weird.

在这种情况下,您可以使用 id :

The id type is completely nonrestrictive. By itself, it yields no information about an object, except that it is an object.

例如:

id cellValue = [targetRange.value get];
NSString *stringValue = nil;
if ([cellValue isKindOfClass:[NSString class]]) {
stringValue = cellValue;
} else if ([cellValue isKindOfClass:[NSNumber class]]) {
stringValue = [cellValue stringValue];
}

请注意,在您的情况下,您可能可以使用如下内容:

NSString *stringValue = [NSString stringWithFormat:@"%@", [targetRange.value get]];

关于objective-c - 寻找更好的方法来测试对象的类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510684/

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