我想将各种自定义类对象传递给方法,并检查对象是否有任何内容(即自定义标签没有文本或图像视图没有图像等)。这可能吗?有什么办法可以判断未知类型的对象是否有任何内容?
0
A
回答
1
你可以做沿
- (BOOL)viewObjectContainsContent:(id)object
{
BOOL containsContent = false;
// First check that the object passed in isn't nil no point doing anything otherwise.
// We also want to check that the object is an instance of UIView or a subclass of it.
if(object && [object isKindOfClass:[UIView class]]) {
// Not going to do all the different combinations but you'll get what's going on
if ([object isMemberOfClass:[UILabel class]]) {
UILabel *labelObject = (UILabel *)object;
if ([labelObject text]) containsContent = true;
} else if ([object isMemberOfClass:[UIImageView]]) {
UIImageView *imageObject = (UIImageView*)object;
if ([imageObject image]) containsContent = true;
} else if (//So on checking the different objects.....
}
return containsContent;
}
线的东西,那么你可以把它用BOOL boolVal = [self viewObjectContainsContent:label];
self
是一个类的实例,该方法的一部分。
另外请注意,如果你正在使用的东西像UILabel
和UIImageView
子类,您可能需要与isKindOfClass:
更换isMemberOfClass:
检查亚类。
希望这是你正在寻找的,如果不留下评论,我会相应修改。
1
如果你不知道对象,那么Yu不能这么做。标签和imageView(对于其他对象相同)不共享属性名称以使此类检查成为可能。你可以做的是检查对象是否为零..或者写一个方法来检查对象是否是你想要测试的每个类的类型,然后检查属性。
了解你所调用的空白对于所有对象都是不一样的。
相关问题
- 1. 有什么办法可以判断UIPickerView是否在旋转?
- 2. 有什么方法可以知道对象的类型?
- 3. 爪哇 - 有什么办法从参考类型推断对象类型
- 4. Objective-C有没有办法判断对象是否设置为autorelease?
- 5. 有没有办法判断所有验证器是否满足?
- 6. 有什么办法可以阻止http处理未知方法?
- 7. 如何判断TypeScript对象的类型?
- 8. 有没有办法判断x-sendfile是否已经启动?
- 9. 有没有办法判断是否显示软键盘?
- 10. 有没有办法判断一个活动是否开始?
- 11. 有没有办法判断ReactElement是否呈现“null”?
- 12. 有没有办法判断Safari是否全屏? (例如document.fullscreenElement)
- 13. 在Java中有什么方法可以判断一个类是否是一个简单的'Java'类?
- 14. 有什么办法可以在类的所有方法上设置断点?
- 15. 如何判断Javascript对象内部是什么
- 16. 有什么办法可以检查一个类型是枚举类型吗?
- 17. 有什么办法可以知道调用者类名吗?
- 18. 是否有任何算法来判断一个字符串是否有意义
- 19. 有没有什么方法可以确定一个未知类型?
- 20. 有没有什么办法可以从类中自动生成对象?
- 21. 有什么办法可以访问所有的android通知?
- 22. 有没有办法处理未知的泛型类型?
- 23. 如何判断Java类是否抽象?
- 24. C#tcp sockets如何判断发送的对象类型是什么?
- 25. 如何判断对象是否为空?
- 26. Python可以判断类的对象的访问方法
- 27. JAXB:如何判断某个类是否可以无法注释
- 28. 有没有什么办法可以在被测试的类中断点?
- 29. 是否有可以表示任意Javascript对象的Java类?
- 30. 是否有任何发现json对象的不同内容?