Objective c 找到多个名为zIndex的方法时出错,结果不匹配
我不知道如何重写此代码以避免编译器混淆。如有任何建议,将不胜感激。ZIndex是错误消息中标记的方法Objective c 找到多个名为zIndex的方法时出错,结果不匹配,objective-c,xcode,Objective C,Xcode,我不知道如何重写此代码以避免编译器混淆。如有任何建议,将不胜感激。ZIndex是错误消息中标记的方法 (void)stackByZIndexIn:(UIView *)container { NSArray *sorted = [container.subviews sortedArrayUsingComparator:^NSComparisonResult(id view1, id view2) { int z1 = [view1 respondsToSelector:
(void)stackByZIndexIn:(UIView *)container {
NSArray *sorted =
[container.subviews sortedArrayUsingComparator:^NSComparisonResult(id view1,
id view2) {
int z1 = [view1 respondsToSelector:@selector(zIndex)] ? [view1 zIndex] : 0;
int z2 = [view2 respondsToSelector:@selector(zIndex)] ? [view2 zIndex] : 0;
if (z1 > z2) {
return NSOrderedDescending;
}
if (z1 < z2) {
return NSOrderedAscending;
}
return NSOrderedSame;
}];
(void)stackByZIndexIn:(UIView*)容器{
NSArray*已排序=
[container.subviews sortedarrayingcomparator:^n比较结果(id view1,
id视图(2){
int z1=[view1响应选择器:@selector(zIndex)]?[view1 zIndex]:0;
int z2=[view2响应选择器:@selector(zIndex)]?[view2 zIndex]:0;
如果(z1>z2){
退而求其次;
}
if(z1
由于代码看起来合理,您有什么困惑?您是否确定默认情况下子视图的顺序不正确zIndex
呢?zIndex不是UIView上的属性,因此如果您发布包含zIndex的类代码会很有帮助。听起来您可能有一个属性和一个方法命名为zIndex或沿着这些行的某个选项是将view1
和view2
强制转换为具有适当zIndex
方法的实际类。错误消息的最后一部分显示“参数类型或属性”。我将查看ZIndex是否定义为属性。在代码的其他部分中,我确实将ZIndex定义为属性。我认为ZIndex和ZIndex会被视为不同的(我知道这完全是草率的。)可能我犯了一个错误。如果将view1转换为int,语句会是什么样子?