Да, если вы добавите эти два дополнительных свойства, DBAccess автоматически добавит дополнительные столбцы.
В настоящее время нет возможности указывать значение по умолчанию для новых столбцов, все они будут инициализированы с помощью NULL, как и следовало ожидать.
Ваше предложение о значениях по умолчанию интересно, я удивлен, что раньше не возникало. Кажется, он прост в реализации и вполне логичен. Лишь небольшие странно было бы, что если бы я добавить метод
+ (id)defaultValueForProperty:(NSString*)propertyName;
в рамки, а затем назвать то, что при создании нового столбца будут пользователи, возможно, ожидать, что это произойдет в строку, а не один раз при создании столбец, поэтому они могут настроить это значение, возможно, рассчитать его из содержимого в другом месте.
Мне понравилась бы ваша обратная связь о том, что вы считаете подходящим решением.
Я лично склоняюсь к методу класса и экземпляра, и если разработчик реализует метод экземпляра, то каждая отдельная строка будет анализироваться и переписываться, что может быть медленным, но также очень полезной функцией.
В любом случае, для такой простой функции не требуется больше часа или около того. Нам просто нужно увидеть, можем ли мы увидеть какие-нибудь подводные камни.
Благодаря
Ну, я думаю, что метод класса будет очень полезно, в частности, при добавлении новых (о создании) полей, которые не могут быть нулевыми. – Patrik
Метод экземпляра, как вы говорите, может быть очень медленным для больших таблиц. Возможно, лучше предоставить способ запускать SQL-запрос в качестве исправления существующих данных, это может быть быстрее. Или возможность реализовать функцию класса, которая вызывается каждый раз, когда таблица изменяется. – Patrik
Я принимаю это, поэтому я понимаю ваши аргументы позади этого, чтобы заставить запросы вести себя. Например, «WHERE surname ==» «ИЛИ фамилия IS NULL». Потому что все объекты будут иметь свои значения свойств по умолчанию. Например, если вам нужно добавить возраст столбца, хотя значение столбца в SQLite будет NULL, значение в классе будет равно 0. Когда этот объект будет сохранен, он будет сохранен с 0, а не NULL. Я собираюсь внести изменения, потому что они просты, но мне интересно, есть ли другой сценарий, о котором я должен думать, который я еще не рассматривал. –