1. OrmLite

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比湘鄉(xiāng)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式湘鄉(xiāng)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋湘鄉(xiāng)地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
OrmLite 不是 Android 平臺(tái)專用的ORM框架,它是Java ORM。支持JDBC連接,Spring以及Android平臺(tái)。語(yǔ)法中廣泛使用了注解(Annotation)。
2. SugarORM
SugarORM 是 Android 平臺(tái)專用ORM。提供簡(jiǎn)單易學(xué)的APIs。可以很容易的處理1對(duì)1和1對(duì)多的關(guān)系型數(shù)據(jù),并通過(guò)3個(gè)函數(shù)save(), delete() 和 find() (或者 findById()) 來(lái)簡(jiǎn)化CRUD基本操作。
要啟用SugarORM,需要在你的應(yīng)用程序 AndroidManifest.xml 配置中添加如下meta-data標(biāo)簽:
meta-data android:name="DATABASE" android:value="my_database.db" /
meta-data android:name="VERSION" android:value="1" /
meta-data android:name="QUERY_LOG" android:value="true" /
meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain" /
然后就可以從SugarORM擴(kuò)展需要保存的數(shù)據(jù)類:
public class User extends SugarRecordUser {
String username;
String password;
int age;
@Ignore
String bio; //this will be ignored by SugarORM
public User() { }
public User(String username, String password,int age){
this.username = username;
this.password = password;
this.age = age;
}
}
要添加一個(gè)User,代碼如下:
User johndoe = new User(getContext(),"john.doe","secret",19);
johndoe.save(); //stores the new user into the database
3. GreenDAO
當(dāng)性能很重要時(shí)(數(shù)據(jù)訪問(wèn)頻繁),GreenDao是一個(gè)很快的解決方案,它能夠支持?jǐn)?shù)千條記錄的CRUD每秒,和OrmLite相比,GreenDAO要快幾乎4.5倍。(準(zhǔn)確數(shù)據(jù)請(qǐng)自行benchmark)。
GreenDAO小于100KB,所以對(duì)于應(yīng)用程序APK的大小影響很小。
這里有一個(gè)教程,演示如何使用Android Studio,在Android應(yīng)用程序中使用GreenDAO框架。
4. Active Android
Active Record(活動(dòng)目錄)是Yii、Rails等框架中對(duì)ORM實(shí)現(xiàn)的典型命名方式。Active Android 幫助你以面向?qū)ο蟮姆绞絹?lái)操作SQLite。
5. Realm
Realm 是一個(gè)將可以使用的Android ORM,基于C++編寫,直接運(yùn)行在你的設(shè)備硬件上(不需要被解釋),因此運(yùn)行很快。它同時(shí)是開源跨平臺(tái)的,iOS的代碼可以在GitHub找到,你還可以找到Objective C以及Swift編寫的Realm使用實(shí)例。
公司開發(fā)的SDK,是集成了各個(gè)平臺(tái)的商品,包括購(gòu)買、分享、提現(xiàn)等功能,為了加快進(jìn)度,我是使用了一些第三方。但是有些需求,比如分享到微信朋友圈或者還有,必須用到微信的SDK。考慮到后期的維護(hù)成本和集成,筆者采用了cocoapods管理第三方庫(kù)。
筆者有片文章專門介紹SDK的開發(fā)步驟的,大家可以參考,我這里就直接進(jìn)入主題了。
首先,你創(chuàng)建一個(gè)靜態(tài)的framework工程MyTestSDK,把這個(gè)工程集成cocpapods,至于如何集成cocpapods,網(wǎng)上有教程,自己搜索。這個(gè)時(shí)候把你項(xiàng)目中所用的第三方庫(kù)添加到Podfile文件中,然后 pod install。這個(gè)時(shí)候你command + B 編譯運(yùn)行,如果你的第三方庫(kù)中還有Bundle資源,那么編譯后,第三方庫(kù)的bundle資源會(huì)被編譯,一起放到Products文件下的framework文件中,右鍵Show in Finder就會(huì)看到。如下圖所示的MBProgressHUD文件夾,里面都是MBProgressHUD第三方的資源文件。
然后把你的項(xiàng)目放入SDK工程中,編譯運(yùn)行一下,看看有沒(méi)有錯(cuò)誤。之所以先把SDK工程選用cocoapods管理,就是怕你的項(xiàng)目放入SDK中運(yùn)行報(bào)錯(cuò)。沒(méi)有任何問(wèn)題,直接編譯即可。
由于SDK中的第三方是通過(guò)cocoapods管理的,所以接入者的項(xiàng)目也要用cocoapods管理。
1:把SDK工程中,Products文件夾下的framework文件copy到項(xiàng)目中,最好項(xiàng)目中建立一個(gè)文件夾,專門放SDK和bundle。我是放到了一個(gè)文件夾中,方便分類尋找。如下圖所示:
2:打開終端,cd到SDK所在的文件夾下,執(zhí)行如下命令,回車,創(chuàng)建spec文件。
其中,MyTestSDK是你的SDK名稱。
創(chuàng)建出來(lái)的spec文件,是個(gè)很長(zhǎng)的文件,但是大部分都是注釋的,我這里只提取了有用的信息展示出來(lái):
然后把spec中依賴的第三方庫(kù),逐個(gè)加入到項(xiàng)目中的Podfie文件中。然后 終端打開,cd到自己的項(xiàng)目中,pod install即可。
本人親自測(cè)試過(guò)的,No Problem。當(dāng)初感覺(jué)SDK如果依賴了第三方庫(kù),接入的項(xiàng)目中也有同樣的第三方庫(kù),會(huì)不會(huì)沖突啊,感覺(jué)好難搞啊。事實(shí)證明,通過(guò)spec進(jìn)行依賴,可以很好的解決這個(gè)問(wèn)題,也就沒(méi)有那么麻煩了。
首次開發(fā)SDK還是遇到了很多問(wèn)題,運(yùn)行出現(xiàn)很多bug,但是最后還是一一解決了,就是沒(méi)有記錄下bug和解決發(fā)的方法。
1;path路徑不對(duì),就會(huì)報(bào)錯(cuò) ,如下
是因?yàn)槲野崖窂綄懗闪耍?/p>
其實(shí)正確的寫法是:把“/”放在前面
2:SDK中有第三方,但是項(xiàng)目中的Podfile里面沒(méi)有這個(gè)第三方,報(bào)錯(cuò)如下所示:
解決辦法是就是在項(xiàng)目中的 Podfile里面加入缺失的第三方庫(kù),重新 pod install。
一般的數(shù)據(jù)量很小的項(xiàng)目,沒(méi)必要使用數(shù)據(jù)庫(kù),如果只是保存寫用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。任何一個(gè)項(xiàng)目都需要保存一個(gè)使用狀態(tài),不能每次打開項(xiàng)目的時(shí)候都和第一次運(yùn)行一樣,完全新,要給人以使用過(guò)的感覺(jué)就要存儲(chǔ)一些歷史數(shù)據(jù)。如果怕影響用戶體驗(yàn)的話,可以多開線程在后臺(tái)去對(duì)數(shù)據(jù)操作(數(shù)據(jù)量大的情況下),記得對(duì)線程要回收。如果你對(duì)保存數(shù)據(jù)比較迷茫的話,你可以google一下ios的四種數(shù)據(jù)持久化,對(duì)于sqlite和coredata,我個(gè)人認(rèn)為只是兩種不同的存儲(chǔ)方法,一種是小型輕量級(jí)sqlite數(shù)據(jù)庫(kù),所有移動(dòng)設(shè)備經(jīng)常用到的,還有一種是蘋果針對(duì)ios操作系統(tǒng)開發(fā)的coredata數(shù)據(jù)存儲(chǔ),具體孰勝孰略還有待你自己去了解,一般如果我的數(shù)據(jù)庫(kù)要非常多的表格互相關(guān)聯(lián)最后查詢一條結(jié)果那么我會(huì)采用sqlite,如果存儲(chǔ)一些有規(guī)律的數(shù)據(jù)那么我會(huì)采用coredata,沒(méi)有哪個(gè)更好的說(shuō)法,只能說(shuō)這兩種都各有千秋,而我聽前輩們說(shuō),coredata只是蘋果對(duì)sqlite的又一次封裝而已,方便操作但也局限操作
1.goole開源?
2.iOS基礎(chǔ)知識(shí)
;page=1
3.OC的缺陷和陷阱
4.文頂頂博客園
5.FaceBook
6.objc中國(guó)
7.唐巧的技術(shù)博客
8.念茜的博客
9.code4app
10.cocoaChina
11.IT 社區(qū)
12.C博客
13.CocoaPods的安裝及使用
14.標(biāo)準(zhǔn)時(shí)間與時(shí)間戳相互轉(zhuǎn)化
15.博客 loadView、viewDidLoad及viewDidUnload的關(guān)系
16.iOS即時(shí)通訊語(yǔ)音聊天本地音頻處理
17.承影博客
18.常用加密
19.正則表達(dá)式
20.iphone開發(fā)過(guò)程中調(diào)試多次release問(wèn)題?
21.使用 Xcode 和 Instruments 調(diào)試解決 iOS 內(nèi)存泄露
22.iOS開發(fā)中常見的一些bug
23.玩轉(zhuǎn)swift
24.友盟分享
25.objc中國(guó)
26.ViewController的切換
27.iOS 平臺(tái) Cocos2d-x 項(xiàng)目接入新浪微博 SDK 的坑
28.joosonmao的專欄(里面的文章都很棒)
29.移動(dòng)IM(環(huán)信)
環(huán)信XMPP:
30.各種錯(cuò)誤匯總博客園
31.菜鳥筆記
;page=1
32.開發(fā)者賬號(hào)注冊(cè)和支付
33.在Xcode中使用Git進(jìn)行源碼版本控制
34.PNChart(圖像繪畫)
35.微信公眾平臺(tái)
36.常用加密
37.cocoaPod相關(guān)網(wǎng)址:
38.2014年整理的IOS開發(fā)常用庫(kù)
39.挺好的一個(gè)網(wǎng)站
40、響應(yīng)者鏈
41、改變UITabBar的背景色
;utm_medium=referral
42、 IOS 集成到支付寶的步驟及問(wèn)題
43、 XMPP 協(xié)議實(shí)現(xiàn)原理介紹
44、 iOS開發(fā)多線程篇—多線程簡(jiǎn)單介紹
45、KVC 與 KVO理解
46、 iOS 設(shè)計(jì)模式之單例模式
47. 一些第三方庫(kù)的了解
動(dòng)態(tài)鏈接庫(kù)是以 .dylib 和 .framework 為結(jié)構(gòu)的文件。
1.把framework封裝進(jìn)另一個(gè)framework中?
首先,蘋果大方的告訴我們他們是不允許這樣做的。。。
其次,實(shí)際上把靜態(tài)庫(kù)封進(jìn)另一個(gè)靜態(tài)庫(kù)確實(shí)是行不通的;
然而,把動(dòng)態(tài)庫(kù)封進(jìn)靜態(tài)庫(kù)是可行的:
使用方式:
場(chǎng)景2:
當(dāng)你在靜態(tài)庫(kù)中使用了動(dòng)態(tài)庫(kù)的方法,當(dāng)你使用此靜態(tài)庫(kù)時(shí)也要在project中引入動(dòng)態(tài)庫(kù)并且做如下圖操作:
否則,會(huì)報(bào)錯(cuò),錯(cuò)誤如下:
dyld: Library not loaded: @rpath/ZegoAVKit2.framework/ZegoAVKit2
Referenced from: /var/containers/Bundle/Application/0A23D0E0-EE5E-4E18-8020-D9F7D2F3B5CD/ahwx.app/ahwx
Reason: image not found
1.證書引起的錯(cuò)誤
控制臺(tái)錯(cuò)誤截圖
在動(dòng)態(tài)庫(kù)內(nèi)容沒(méi)有問(wèn)題的情況下,大多是由于沒(méi)有對(duì)動(dòng)態(tài)庫(kù)簽名導(dǎo)致的。iOS 8以后,蘋果支持使用自定義的動(dòng)態(tài)庫(kù),但不能上架到AppStore。我們的是企業(yè)級(jí)項(xiàng)目,不上架沒(méi)關(guān)系。
先查看一下你的動(dòng)態(tài)庫(kù)內(nèi)容
解決辦法:在生成動(dòng)態(tài)庫(kù)時(shí)選擇一個(gè)Team進(jìn)行簽名即可。
2.Swift版本引起的錯(cuò)誤(注意:下圖問(wèn)題不一定是由于swift版本引起的,我遇到的問(wèn)題就是swift版本引起了下面的問(wèn)題)
解決方法:把下面的設(shè)置為YES
詳細(xì)說(shuō)明我的問(wèn)題:在之前,也就是Xcode7.3,動(dòng)態(tài)庫(kù)是swift2.3寫的。通過(guò)loadAndReturnError加載是沒(méi)有問(wèn)題的,因?yàn)閄code7.3對(duì)應(yīng)的就是swift2.3。swift3.0是Xcode8才推出來(lái)的,所以就沒(méi)問(wèn)題。而現(xiàn)在,Xcode升級(jí)到的8.2,而swift也升到了3.0;但是,這個(gè)動(dòng)態(tài)庫(kù)還是swift2.3,同時(shí):工程設(shè)置里使用的是最新的swift版本,所以就會(huì)出現(xiàn)這個(gè)問(wèn)題。
分享文章:ios開發(fā)庫(kù),ios開發(fā)數(shù)據(jù)庫(kù)
分享路徑:http://chinadenli.net/article44/dseihhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、外貿(mào)建站、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)