setPropertiesToFetch, кажется, не имеет эффекта

Интерфейсы являются ответом и на самом деле более мощны, чем "константа" в C++. константа является единым решением проблемы, где "константа" определяется, поскольку "не делает элементов множества или называют что-то, что устанавливает участников". Это - хорошая стенография для мыса константы во многих сценариях, но не всех них. Например, рассмотрите функцию, которая вычисляет значение на основе некоторых участников, но также и кэширует результаты. В C++ это рассмотрело неконстанту, хотя с точки зрения пользователя это - по существу константа

, Интерфейсы дают Вам больше гибкости в определении определенного подмножества возможностей, которые Вы хотите обеспечить от своего класса. Хотите мыс константы? Просто обеспечьте интерфейс без видоизменяющихся методов. Хотите позволить устанавливать некоторые вещи, но не других? Предоставьте интерфейсу просто те методы.

6
задан John Topley 15 June 2012 в 17:36
поделиться

1 ответ

У меня сложилось впечатление (из того, что сказали инженеры Apple), что данные будут сброшены для невыбранных свойств, как только вы используете аксессоры для этого свойства. Может случиться так, что при генерации описания NSManagedObject эти методы доступа используются для каждого свойства, вызывая ошибку в данных непосредственно перед генерацией строки, описывающей объекты.

Вы можете попробовать использовать инструменты Core Data Faults и / или Core Data Cache Misses (в симуляторе), чтобы увидеть, когда действительно возникают ошибки. Если они происходят прямо перед тем, как вы распечатываете управляемые объекты, это, похоже, подтверждает мое предположение, приведенное выше.

2
ответ дан 10 December 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: