当我们拥有内存标识符为copy
的属性时,系统会调用哪个类方法来复制我的对象?
答案 0 :(得分:3)
标记为copy
的Objective-C属性将使用copy
类中的NSObject
方法。基本上,自动合成的setter方法看起来像这样:
- (void)setName:(NSString *)name {
_name = [name copy];
}
除此之外还有更多(键值观察等),但我展示的内容涵盖了您的问题。
如果该属性适用于您自己的自定义类,请确保您的类符合NSCopying
并正确实现copyWithZone:
方法。
答案 1 :(得分:1)
这意味着你的属性属于某些采用NSCopying的类,并且会在其上调用 constructor() {
super();
$('[name=EmpNum]').autocomplete({
minLength: 6,
autoFocus: true,
source: function (request, response) {
$.ajax({
url: "/services/adlookup/autocompleteuserlookup",
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {//data needs to be array of objects
return { label: item.LastName + ", " + item.FirstName + " (" + item.Descriptions + ")", value: item.EmpNum + "|" + item.UserName + "|" + item.LastName + "|" + item.FirstName + "|" + item.EmailAddress + "|" + item.WorkPhone };//item is each item in array item.LastName
}))
}
})
},
focus: function () {
$(".ui-helper-hidden-accessible").hide();
event.preventDefault();
return false;
}
})
.on('autocompleteselect', function (e, ui) { //fill in data after it had been selected
var t = $(this),
label = (e.type == 'autocompleteresponse' ? ui.content[0].label : ui.item.label),
value = (e.type == 'autocompleteresponse' ? ui.content[0].value : ui.item.value);
var adprop = value.split("|");
return false;
});
}//end constructor
(实际上是copy
)。
因此,研究符合NSCopying所需的内容将告诉您需要知道的一切。