Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 找到多个名为zIndex的方法时出错,结果不匹配_Objective C_Xcode - Fatal编程技术网

Objective c 找到多个名为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:

我不知道如何重写此代码以避免编译器混淆。如有任何建议,将不胜感激。ZIndex是错误消息中标记的方法

(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,语句会是什么样子?