在Key-Value Coding Programming Guide中,它声明NSObject子类符合KVC。
从NSObject或其子类之一继承的Swift对象默认是符合其属性的键值编码
自定义对象(结构,类)是否可以采用NSKeyValueCoding
并且符合KVC标准?
另外,KVC如何通过继承NSObject来给对象一个?
答案 0 :(得分:2)
与正式协议不同,任何对象在技术上都符合NSKeyValueCoding
,NSObject
可通过Informal Protocols:
NSObject
非正式协议是NSObject上的一个类别,它暗含了这个类别 几乎所有对象都采用该协议。 (类别是一种语言 功能,使您可以在没有子类化的情况下向类添加方法 它。)非正式协议中方法的实施是 可选的。在调用方法之前,调用对象检查以查看 目标对象是否实现它。直到可选协议 方法在Objective-C 2.0中引入,非正式协议是 对Foundation和AppKit类实现的方式至关重要 一行。
这与简单地将KVC直接实现到NSObject
相反,我认为非正式协议的主要好处是将NSKeyValueCoding
的功能分成单独的文件。但使用非正式协议可能还有其他好处
由于NSObject
是 function initMap() {
var uluru = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map,
image: 'icon.png'
});
}
上的一个类别,遗憾的是您不能只使任何自定义对象支持KVC