NSFetchedResultsController委托在初始提取时未调用的方法

时间:2016-01-11 19:36:07

标签: ios objective-c core-data delegates

问题一直困扰着我:

是NSFetchedResultsController" controllerDidChangeContent"最初提取内容时应该调用的委托方法等,还是仅在更新/更改最初提取的内容时调用?

有一个问题,即使初始提取结果返回结果,也不会调用委托方法,除非初始结果批次更改(例如稍后从网络请求)。

这意味着我目前需要使用reloadData()强制进行集合视图更新,因为当核心数据中只有现有内容并且没有任何新内容更改它时,等待委托方法调用失败。

我已确认在初始提取完成时,委托已设置且结果有效。我在这里找不到任何陷阱?

1 个答案:

答案 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') ); }); 后进行的更改才会调用委托方法。您可以从类参考文档中的几个语句推断出这一点。