Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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 setValue:forKey:搜索符合KVC的方法或ivar的顺序是什么?_Objective C_Ios_Key Value Coding - Fatal编程技术网

Objective c setValue:forKey:搜索符合KVC的方法或ivar的顺序是什么?

Objective c setValue:forKey:搜索符合KVC的方法或ivar的顺序是什么?,objective-c,ios,key-value-coding,Objective C,Ios,Key Value Coding,一些背景: 我编写了一个UIScrollView派生类,其中包含一个名为contentView的出口,如下所示: @interface MyScrollView : UIScrollView { IBOutlet UIView * contentView; } ... @end 我的出口,在这种情况下是一个iVar,而不是一个财产。我利用Interface builder中的类,将一个视图连接到contentViewoutlet。然而,在运行时,我发现我的iVar仍然为零,并且没有

一些背景:

我编写了一个UIScrollView派生类,其中包含一个名为contentView的出口,如下所示:

@interface MyScrollView : UIScrollView {
    IBOutlet UIView * contentView;
}

...

@end
我的出口,在这种情况下是一个iVar,而不是一个财产。我利用Interface builder中的类,将一个视图连接到
contentView
outlet。然而,在运行时,我发现我的iVar仍然为零,并且没有设置为所需的视图对象

一些实验表明,如果我重新命名了插座,或者将插座作为属性而不是iVar,所有这些都可以正常工作。进一步的研究表明,如果我的插座是名为
contentView
的iVar,加载nib实际上会将我所需的视图对象连接到名为
\u contentView
的UIScrollView中的私有iVar

我知道nib加载使用KVC设置值,KVC
setValue:forKey:
方法将使用以下任何一种设置值:

@interface MyScrollView : UIScrollView {
    IBOutlet UIView * contentView;
}

...

@end
  • set{Key}:
    method
  • {key}
    iVar
  • {key}
    iVar
我怀疑,但无法证明,首先会尝试查找
set{Key}:
方法,如果失败,则执行iVar枚举以查找
{Key}
{Key}
iVar。此枚举可能按照在子类之前处理来自超类的IVAR的顺序发生


是否有记录在案的尝试上述候选人的顺序?超类的成员按照与子类相关的顺序进行尝试?

特定的搜索算法记录在中。

特定的搜索算法记录在中。

非常感谢您找到参考。非常感谢您找到参考。