问题一直困扰着我:
是NSFetchedResultsController" controllerDidChangeContent"最初提取内容时应该调用的委托方法等,还是仅在更新/更改最初提取的内容时调用?
有一个问题,即使初始提取结果返回结果,也不会调用委托方法,除非初始结果批次更改(例如稍后从网络请求)。
这意味着我目前需要使用reloadData()强制进行集合视图更新,因为当核心数据中只有现有内容并且没有任何新内容更改它时,等待委托方法调用失败。
我已确认在初始提取完成时,委托已设置且结果有效。我在这里找不到任何陷阱?
答案 0 :(得分:1)
只有在调用$(document).ready(function() {
// VARIABLES
var allClassNames = [];
var eachClassName = "";
// GET CLASS NAMES FROM THE HTML PAGE
$('[class]').each(function eachClassName(){
$.each($(this).attr('class').split(' '), function(i, className) {
if (className.length && $.inArray(className, allClassNames) === -1) {
allClassNames.push(className);
}
});
});
// GET THE CSS STYLING FOR EACH CLASS
function getStyleRuleValue(style, selector) {
for (var i = 0; i < document.styleSheets.length; i++) {
var mysheet = document.styleSheets[i];
var myrules = mysheet.cssRules ? mysheet.cssRules : mysheet.rules;
for (k = 0; k < allClassNames.length; k++) {
console.log(allClassNames[k]);
}
for (var j = 0; j < myrules.length; j++) {
if (myrules[j].selectorText && myrules[j].selectorText.toLowerCase() === selector) {
return myrules[j].style[style];
}
}
}
};
// I'M TRYING TO LOOP THROUGH THE CLASSES WHERE IT SAYS .TWO??
console.log( getStyleRuleValue('top', '.two') );
});
后进行的更改才会调用委托方法。您可以从类参考文档中的几个语句推断出这一点。