У меня есть очень простая модель, определенная: < /p>
@Model
final class Movie: Identifiable {
#Index\(\[.name\])
var id = UUID()
var name: String
var genre: String?
init(name: String, genre: String?) {
self.name = name
self.genre = genre
}
}
< /code>
Я включил отладку SQL, включив «-com.apple.coredata.sqldebug 3 'аргумент при запуске. Следующий код, он изначально выбирает 3 записи, но затем также выбирает каждую запись индивидуально, даже если я не ссылаюсь на какие -либо другие атрибуты. < /p>
var fetchDescriptor = FetchDescriptor\()
fetchDescriptor.propertiesToFetch = \[.id, .name\]
fetchDescriptor.fetchLimit = 3
do {
print("SELECT START")
movies = try modelContext.fetch(fetchDescriptor)
print("SELECT END")
} catch {
print("Failed to load Movie model.")
}
< /code>
Вот информация отладки: < /p>
SELECT START
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 1, t0.Z_PK, t0.ZID, t0.ZNAME FROM ZMOVIE t0 LIMIT 3' returned 3 rows with values: (
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZGENRE, t0.ZID, t0.ZNAME FROM ZMOVIE t0 WHERE t0.Z_PK = ? ' returned 1 rows
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZGENRE, t0.ZID, t0.ZNAME FROM ZMOVIE t0 WHERE t0.Z_PK = ? ' returned 1 rows
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZGENRE, t0.ZID, t0.ZNAME FROM ZMOVIE t0 WHERE t0.Z_PK = ? ' returned 1 rows
SELECT END
< /code>
Я вижу, как он выбирает 3 Rows initysy, но затем он выбирает каждый отдельно. Зачем это делать на начальном выборе? Я надеялся выбрать данные, которые я хочу отобразить, и позволить системе выбрать всю запись только тогда, когда я получаю доступ к переменной, которую я изначально не получил.
Подробнее здесь: https://stackoverflow.com/questions/794 ... -each-reco
SwiftData PosterteStoFetch только получает запрошенные атрибуты, но каждая запись полностью выбирается даже при том, что ⇐ IOS
Программируем под IOS
1739014093
Anonymous
У меня есть очень простая модель, определенная: < /p>
@Model
final class Movie: Identifiable {
#Index\(\[.name\])
var id = UUID()
var name: String
var genre: String?
init(name: String, genre: String?) {
self.name = name
self.genre = genre
}
}
< /code>
Я включил отладку SQL, включив «-com.apple.coredata.sqldebug 3 'аргумент при запуске. Следующий код, он изначально выбирает 3 записи, но затем также выбирает каждую запись индивидуально, даже если я не ссылаюсь на какие -либо другие атрибуты. < /p>
var fetchDescriptor = FetchDescriptor\()
fetchDescriptor.propertiesToFetch = \[.id, .name\]
fetchDescriptor.fetchLimit = 3
do {
print("SELECT START")
movies = try modelContext.fetch(fetchDescriptor)
print("SELECT END")
} catch {
print("Failed to load Movie model.")
}
< /code>
Вот информация отладки: < /p>
SELECT START
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 1, t0.Z_PK, t0.ZID, t0.ZNAME FROM ZMOVIE t0 LIMIT 3' returned 3 rows with values: (
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZGENRE, t0.ZID, t0.ZNAME FROM ZMOVIE t0 WHERE t0.Z_PK = ? ' returned 1 rows
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZGENRE, t0.ZID, t0.ZNAME FROM ZMOVIE t0 WHERE t0.Z_PK = ? ' returned 1 rows
CoreData: annotation: fetch using NSSQLiteStatement on entity 'Movie' with sql text 'SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZGENRE, t0.ZID, t0.ZNAME FROM ZMOVIE t0 WHERE t0.Z_PK = ? ' returned 1 rows
SELECT END
< /code>
Я вижу, как он выбирает 3 Rows initysy, но затем он выбирает каждый отдельно. Зачем это делать на начальном выборе? Я надеялся выбрать данные, которые я хочу отобразить, и позволить системе выбрать всю запись только тогда, когда я получаю доступ к переменной, которую я изначально не получил.
Подробнее здесь: [url]https://stackoverflow.com/questions/79422771/swiftdata-propertiestofetch-only-fetches-the-requested-attributes-but-each-reco[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия