Asosiy ma'lumotlar - Core Data - Wikipedia

Asosiy ma'lumotlar
Asosiy ma'lumotlar
Tuzuvchi (lar)Apple Inc.
Barqaror chiqish
3.2.0
Operatsion tizimmacOS, iOS, tvOS, watchOS
TuriTizim yordam dasturi
LitsenziyaMulkiy
Veb-saytApple Developer Core Data Programming Guide

Asosiy ma'lumotlar bu ob'ektlar grafigi va qat'iyatlilik doirasi tomonidan taqdim etilgan olma ichida macOS va iOS operatsion tizimlar. U joriy etildi Mac OS X 10.4 Tiger va iOS iPhone SDK 3.0 bilan.[1] Bu tomonidan tashkil etilgan ma'lumotlarga imkon beradi relyatsion shaxs - atribut modeli bolmoq ketma-ket ichiga XML, ikkilik, yoki SQLite do'konlar. Ma'lumotlar shaxslar va ularning munosabatlarini aks ettiruvchi yuqori darajadagi ob'ektlar yordamida boshqarilishi mumkin. Yadro Ma'lumotlari seriyalashtirilgan versiyasini boshqaradi, ta'minlaydi ob'ektning hayot aylanishi va ob'ektlar grafigi boshqaruv, shu jumladan qat'iyat. Asosiy ma'lumotlar interfeyslari to'g'ridan-to'g'ri bilan SQLite, ishlab chiquvchini asosiy narsadan izolyatsiya qilish SQL.[2]

Xuddi shunday Kakao biriktiruvchi moddalar a-da boshqaruvchining ko'plab vazifalarini bajaring model-view-kontroller dizayn, Core Data ma'lumotlar modelining ko'plab vazifalarini bajaradi. Boshqa vazifalar qatorida u o'zgarishlarni boshqarish, diskka ketma-ketlashtirish, xotira izlarini minimallashtirish va ma'lumotlarga nisbatan so'rovlarni bajaradi.

Foydalanish

Yadro Ma'lumotlari yuqori darajadagi ma'lumotlar modeli bilan tavsiflanadi, bu ob'ektlar va ularning munosabatlari jihatidan ifodalangan, shuningdek, aniq mezonlarga javob beradigan ob'ektlarni olish uchun so'rovlarni olish. Kod saqlash va olish tafsilotlari haqida qayg'urmasdan, ushbu ma'lumotlarni faqat ob'ekt darajasida olishi va boshqarishi mumkin. Tekshirish moslamasi mavjud Interface Builder to'g'ridan-to'g'ri ushbu ob'ektlarni olish va boshqarish mumkin. Kakao biriktirgichlari bilan birlashganda UI ma'lumotlar modelining ko'plab tarkibiy qismlarini fon kodiga ehtiyoj sezmasdan aks ettirishi mumkin.

Masalan: ishlab chiquvchi boshqarish uchun dastur yozayotgan bo'lishi mumkin vKartalar. Ularni boshqarish uchun muallif vCard-larni ob'ektlarga o'qib, so'ngra ularni bitta kattaroq XML-faylga saqlash niyatida. Asosiy ma'lumotlar yordamida ishlab chiquvchi ularni sudrab borishi mumkin sxema ma'lumotlar dizayneridan Xcode ularning sxemasi uchun GUI yaratish uchun interfeys yaratuvchisi oynasida. Keyin ular standart yozishlari mumkin edi Maqsad-C yoki Tez vCard fayllarini o'qish va ma'lumotlarni Core Data boshqariladigan ob'ektlarga joylashtirish uchun kod. Shu vaqtdan boshlab muallif kodi asosiy vCard-lardan ko'ra, ushbu Core Data moslamalarini boshqaradi. Ulanish Saqlash menyu punkti boshqaruvchi ob'ektidagi mos usulga moslashtirilib, tekshirgichni ob'ektlar to'plamini tekshirishga, qaysi ob'ektlar ekanligini aniqlashga yo'naltiradi iflos va keyin ushbu o'zgarishlar bilan Core Data hujjat faylini qayta yozing.

Asosiy ma'lumotlar sinflarning katta ierarxiyasida tashkil etilgan, ammo o'zaro ta'sir faqat ularning kichik to'plami bilan keng tarqalgan.

IsmFoydalanishAsosiy usullar
NSManagedObject
  • Xususiyatlarga kirish
  • Ma'lumotlarning "qatori"
  • -tashkilot
  • -valueForKey:
  • -setValue: forKey:
NSManagedObjectContext
  • Amallar
  • O'zgarishlar
  • -executeFetchRequest: xato:
  • - saqlang
NSManagedObjectModel
  • Tuzilishi
  • Saqlash
  • - shaxslar
  • -fetchRequestTemplateForName:
  • -setFetchRequestTemplate:
forName:
NSFetchRequest
  • Ma'lumotlarni talab qiling
  • -setEntity:
  • -setPredicate:
  • -setFetchBatchSize:
NSPersistentStoreCoordinator
  • Mediator
  • Ma'lumotlarni davom ettirish
  • -addPersistentStoreWithType:
konfiguratsiya: URL:
variantlar: xato:
  • -persistentStoreForURL:
NSPredicate
  • So'rovni ko'rsating
  • + predicateWithFormat:
  • -valateWithObject:

[3][2][4][5]

Saqlash formatlari

Asosiy ma'lumotlar ob'ektlarni XML, ikkilik yoki SQLite saqlash uchun.[2] Ning chiqarilishi bilan Mac OS X 10.5 Leopard, ishlab chiquvchilar ham o'zlarining odatlarini yaratishlari mumkin atom do'kon turlari. Har bir usul afzallik va kamchiliklarni o'z ichiga oladi, masalan, odam o'qiydi (XML) yoki undan samarali xotira (SQLite).

Asosiy ma'lumotlarning ushbu qismi asl nusxaga o'xshash Korxona ob'ektlari doirasi (EOF) tizimi, unda juda murakkab so'rovlar yozish mumkin. EOF-dan farqli o'laroq, o'zingizning SQL-ni yozish mumkin emas, chunki asosiy do'kon SQL-ga asoslangan bo'lmasligi mumkin. Yaqinda ODBC uchun Core Data do'koni mavjud ODBC doirasi. [6]

Ma'lumotlarning asosiy sxemalari standartlashtirilgan. Agar sizda Xcode Data Model fayli bo'lsa, siz o'sha formatdagi fayllarni erkin o'qishingiz va yozishingiz mumkin. EOF-dan farqli o'laroq, Core Data hozirda ko'p foydalanuvchi yoki bir vaqtning o'zida kirish uchun mo'ljallanmagan, agar siz ODBC ramkasidan foydalanmasangiz.[6]

Sxema migratsiyasi ham ahamiyatsiz, deyarli har doim kod talab qiladi. Agar boshqa ishlab chiquvchilar sizning ma'lumotlar modelingizga kirish huquqiga ega bo'lsalar va ularga bog'liq bo'lsa, sizning sxemangiz o'zgargan bo'lsa, sizga yangi ma'lumotlar modeliga qo'shimcha ravishda versiya tarjima kodini taqdim etishingiz kerak bo'lishi mumkin.

Tarix va genezis

Yadro Ma'lumotlari dizaynining katta qismini oldingisiga qarzdor Keyingisi mahsulot, Korxona ob'ektlari doirasi (EOF).[7]

EOF an ob'ekt-relyatsion xaritalash kabi yuqori darajadagi SQL ma'lumotlar bazasi dvigatellari uchun Microsoft SQL Server va Oracle. EOFning maqsadi ikki xil edi: birinchidan, ma'lumotlar bazasi dvigateliga ulanish va dastur tafsilotlarini yashirish; ikkinchidan, relyatsion formatdagi ma'lumotlarni o'qish va ularni ob'ektlar to'plamiga o'tkazish. Ishlab chiquvchilar odatda faqat ob'ektlar bilan o'zaro aloqada bo'ldilar, bu esa murakkab dasturlarni ishlab chiqishni soddalashtirdi, ba'zi ma'lumotlarning qiymatini moslamalarga moslashtirish uchun. EOF ob'ekti modeli, natijada olingan dasturlarni hujjatga o'xshash tarzda ishlashi uchun ataylab ishlab chiqilgan; foydalanuvchi ma'lumotlarni xotirada lokal ravishda tahrirlashi va bitta o'zgarish buyrug'i bilan barcha o'zgarishlarni yozishi mumkin edi.

O'zining butun tarixi davomida EOF bir qator foydali kodlarni o'z ichiga olgan bo'lib, ular ostida mavjud bo'lmagan Keyingi qadam /OpenStep. Masalan, EOF qaysi ob'ektlar ifloslanganligini kuzatish imkoniyatini talab qildi, shunda tizim keyinchalik ularni yozib qo'yishi mumkin edi. Bu ishlab chiquvchiga nafaqat hujjatga o'xshash tizim sifatida, balki cheksiz Undo buyruqlar to'plami shaklida taqdim etildi, har bir buyruq qaytarib bo'lmaydigan harakat sifatida ifodalangan ma'lumotlarga qo'llanildi. Ko'pgina ishlab chiquvchilar ushbu davlat boshqaruv kodini EOFda ajratib olish uchun juda foydali bo'lganligidan shikoyat qildilar va keyinchalik u Kakao API ga o'tish paytida Mac OS X.

Dastlab, tarjima qilinmagan narsa EOFning o'zi edi. EOF asosan OpenStep davridagi boshqa mahsulot bilan birgalikda ishlatilgan, WebObjects, bu edi dastur serveri dastlab asoslangan Maqsad-C. O'sha paytda Apple WebObjects-ni portga ko'chirish jarayonida edi Java dasturlash tili va ushbu konversiyaning bir qismi sifatida EOFni Kakaodan foydalanish ancha qiyinlashdi. Yana bir bor, uchinchi tomon ishlab chiquvchilari orasida katta shikoyat mavjud edi.

EOFdagi ob'ekt holatini boshqarish tizimining relyatsion ma'lumotlar bazalari bilan hech qanday aloqasi yo'qligi muhim ahamiyatga ega. Xuddi shu kod ishlab chiquvchilar tomonidan boshqa ob'ektlarning grafikalarini boshqarish uchun ham bo'lishi mumkin va ishlatilgan. Ushbu rolda EOF-ning haqiqatan ham foydali qismlari ob'ektlar to'plamini xom ma'lumotdan avtomatik ravishda tuzadigan va keyin ularni kuzatib boradigan qismlar edi. Aynan shu kontseptsiya Yadro ma'lumotlarining asosini tashkil etadi.

Izohlar

  1. ^ Apple, "iPhone OS uchun asosiy ma'lumotlar qo'llanmasi".
  2. ^ a b v Apple, "Asosiy ma'lumotlarni dasturlash bo'yicha qo'llanma".
  3. ^ Zarra, Asosiy ma'lumotlar.
  4. ^ Stivenson, "Asosiy ma'lumotlar sinfiga umumiy nuqtai"
  5. ^ Yurevits, "Asosiy ma'lumotlar bilan ishlash"
  6. ^ a b Github, "Odbc ramkasi"
  7. ^ Apple, "EOModeler foydalanuvchi qo'llanmasi"

Adabiyotlar

Tashqi havolalar