1. ios coredata怎麼創建多張表
1)先創建需要的實體表(方法見"CoreData單表創建使用")
Course, Section, Teacher 表
2)建立關聯 設置刪除關系,對應關系如下(設置的具體含義已在文章第二部分介紹)
課程_教師 (一課程可包含多個教師,刪除關系:作廢)
課程_章節(一節課可包含多個章節,刪除關系:級聯)
章節_課程(一個章節只屬於一個課程,刪除關系:作廢)
教師_課程(一個教師可以講多門課,刪除關系:作廢)
創瞎做建之後查看style關系:
表關系
3)使用創建的對象生成相應地文件:.h和.m(方法見"CoreData單表創建使用")
根據3個對象創建的文件
根據設置的對象之間的對應關系 會生成相應地屬性和方法Section對應一個課程團指時 添加課程對象的屬性
課程對應的章節以及教師都是多個,生成NSSet 存儲 並生成相應方法
NSSet 是一個無序的集合 ,可以使用NSSet 與NSArray根塌神配據需要轉換使用,其他使用方法 同單表使用的增刪查改,只是訪問時多層訪問.
如:NSPredicate*predict = [NSPredicate predicateWithFormat:@"section_course.courseId = %d",courseId];
如:self.courseEntity.course_teacher.count
coreData多表關聯的基本操作已做一個簡單的介紹,具體的功能還待使用者發掘,並且蘋果提供了NSFetchController 與coreData結合使用.
2. ios app用什麼資料庫
iOS app一般來常用的資料庫有sqlite和coredata。
sqlite使用源的是SQL語句,代碼會比較復雜,一般不是特別大得數據可以用sqlite來寫。
蘋果的建議是使用coredata,但是coredata在邏輯上會復雜一些,如果能把握住coredata的邏輯關系,那會大大的提高工作效率。
一般建議使用第三方庫來寫
3. 升級了新的mac新版本,xcode的coredata文件報錯是為什麼
預載入/引入數據
那麼我們究竟怎樣把數據存儲進Core Data資料庫?目前有兩種比較好的選擇。
在App啟動的時候從外部文件引入數據,就是在程序開始運行的時候從外部的資源,比如SQLite資料庫或者XML文件中,引入數據。
提供一個已經製作完成的SQLite資料庫,首先製作一個像上次的教程說的那樣的資料庫模型,之後在這個模型中填充數據,填充數據的方式是使用一個utility app,這個utility app可以是一個使用Core Data API填充資料庫的Mac或者iOS app,也可以是一些直接填充資料庫的程序。一旦資料庫被填充之後,你就可以在沒有已存在的資料庫的情況下設置這個資料庫未使用的默認資料庫。
在這個教程中,我們會通過第二種,為大家展示如何使用一個簡單的utility app來預載入一個已經裝在好的Core Data資料庫,以便讓你的app使用。
第一步
我們在iOS上使用Core Data的方法的基礎和我們在Mac OS X上使用的是一致的,使用同樣的模型和類。
這一為我們可以寫一個MAC OS X上的簡單的console程序,來從數據源引入數據,再把這個資料庫的資料庫拿來給我們的iOS程序來用,不錯吧?
我們來試試,首先打開Xcode,在 Mac OSX類中的Application中使用Command Line Tool 的模板。
我們就用 「CoreDataTutorial2」 作為工程的名字吧,記得使用「Core Data」 和 「Use Automatic Reference Counting」 。
完成創建之後,選擇 「CoreDataTutorial2.xcdatamodeld」 徹底刪除之。
4. iOS 開發如果涉及數據和表的持久化,Core Data 比 SQLite 更好嗎
這兩個東西我都用過,兩者都能實現對資料庫的操作,功能上需求都能滿足。
先前在公司實習的時候,原先項目中用的是SQLite,感覺操作很直接。如果先前有一點資料庫和SQL基礎的話,寫起來會感覺很親切,都是一些資料庫操作的語句。但是當操作變多之後,語句越來越多,就很煩,代碼比較多,看起來也會混亂一些。
後來新項目中嘗試了CoreData,因為蘋果一直在推這個東西。CoreData用起來比直接sql語句方便許多,而且很適合進行代碼封裝、重構。其實後來在用CoreData的時候,參照RestKit的ObjectMapping和CoreData部分對其進行了少量封裝,使得CoreData用起來非常方便。例如:添加一條User數據
User *user = [User object];
user.name = @"example";
[objectStore save];
後來做開發一直都在用CoreData,主要是我覺得用起來太方便了,代碼能夠精簡許多。另外,
App升級之後資料庫欄位或者表有更改會導致crash,CoreData的版本管理和數據遷移變得非常有用,手動寫sql語句操作還是麻煩一些。
CoreData不光能操縱SQLite,CoreData和iCloud的結合也很好,如果有這方面需求的話優先考慮CoreData。
CoreData並不是直接操縱資料庫,比如:使用CoreData時不能設置資料庫的主鍵,目前仍需要手動操作。
效率上其實跑程序時感覺不出來,畢竟手機上的數據不能跟網站的數據和訪問量相提並論。
總的來說,個人比較喜歡用CoreData,因為自己比較熟悉,使用起來也非常方便。
PS:既然你一直在CoreData,就應該堅持用下去,除非是真的碰到很致命的無法解決問題。中途換掉既有的自己熟悉的東西,費時費力,實際用起來沒區別,得不償失。
轉載
5. 手機app用什麼資料庫比較好
理論上,APP可以使用任何類型的資料庫,不過目前用得較多的是MSSQL和MYSQL。一般開發APP用JAVA的比較多版,可以考慮使權用MYSQL。sqlite是一種小型數據,可以作為本地保存資料庫,如果數據量比較大,交互比較頻繁,不建議使用。