gpt4 book ai didi

IOS:识别通用对象

转载 作者:可可西里 更新时间:2023-11-01 17:08:47 26 4
gpt4 key购买 nike

在我的应用程序中,我应该分析一个对象,然后这样做:

 if ([object_selected isKindOfClass:[Person class]]) {

Persone *obj = (Persone*)object_selected;
NSString *name = obj.nome;
NSString *surname = obj.surname;

}
else if ([object_selected isKindOfClass:[Animal class]]) {

Animal *obj = (Animal*)object_selected;
NSString *name = obj.nome;
NSString *breed = obj.breed;

}

这样我应该验证我的对象是否属于一个类来获取它的属性,但是有没有更快的方法从我的对象中获取属性“名称”?所有对象都有“名称”属性。

谢谢

最佳答案

上述代码有一个共同的问题:每当缺少 name 属性时,它就会转储核心。这是我的版本,它更安全,而且是单行代码:

id name = ([object respondsToSelector:@selector(name)]) ? [object name] : nil;

希望三元运算符没有让您失望。如果名称不存在,则 nil 可以替换为适当的任何内容,例如:

static NSDictionary *defaultNameForClasses = @{@"FooClass": @"Foo", /* ... */};
// ...
id name = ([object respondsToSelector:@selector(name)]) ? [object name] : defaultNameForClasses[NSStringFromClass([object class])];

关于IOS:识别通用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16957640/

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