日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iphone开发我的新浪微博客户端-用户登录准备篇(1.1)

發(fā)布時(shí)間:2023/11/29 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iphone开发我的新浪微博客户端-用户登录准备篇(1.1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
首先說(shuō)一下我這個(gè)的實(shí)現(xiàn)思路,登錄支持多個(gè)賬號(hào),也就是說(shuō)可以保存多個(gè)微博賬號(hào)登錄的時(shí)候選擇其中一個(gè)登錄。多個(gè)賬號(hào)信息保存在sqlite的數(shù)據(jù)庫(kù)中, 每一個(gè)賬號(hào)信息就是一條記錄, 當(dāng)用戶啟動(dòng)微博客戶端的時(shí)候去取保存在sqlite數(shù)據(jù)庫(kù)中的賬號(hào)記錄信息,然后把這些在界面中以列表的形式展示出來(lái),用戶可以點(diǎn)擊其中的一個(gè)賬號(hào)進(jìn)入微 博,如果如果啟動(dòng)微博客戶端的時(shí)候檢查到sqlite數(shù)據(jù)庫(kù)中一個(gè)賬號(hào)都沒(méi)有的時(shí)候,程序自動(dòng)顯示用戶授權(quán)認(rèn)證頁(yè)面,本客戶端是基于oauth認(rèn)證實(shí)現(xiàn) 的,所以使用新微博賬號(hào)前需要進(jìn)行授權(quán)認(rèn)證,一個(gè)賬號(hào)只需要第一次做一下授權(quán)認(rèn)證然后會(huì)把user_id、Access Token和Access Secret以及用戶名稱和頭像小圖標(biāo)一起保存到sqlite的數(shù)據(jù)庫(kù)中,下次登錄的時(shí)候可以不在需要輸入賬號(hào)和密碼,直接在界面中點(diǎn)擊已經(jīng)選擇的用戶小 圖標(biāo)進(jìn)入微博。關(guān)于Access Token和Access Secret這個(gè)我就不解釋了,不懂的可以google一下oauth的知識(shí),其實(shí)我前面做android版本的微博客戶端的時(shí)候?qū)戇^(guò)一篇比較詳細(xì)的介紹 過(guò)關(guān)于oauth的隨筆可以翻出來(lái)參考一下。 從上面的思路來(lái)看用戶登錄有兩種可能性,第一種數(shù)據(jù)庫(kù)中尚無(wú)任何賬號(hào)信息;第二種數(shù)據(jù)庫(kù)中已經(jīng)包含了一個(gè)或以上的賬號(hào)信息。這兩種情況顯示不同的用戶界面,兩種情況的實(shí)現(xiàn)過(guò)程看下面的描述。 第一種情況實(shí)現(xiàn)過(guò)程:1.查詢sqlite數(shù)據(jù)庫(kù) -->2.無(wú)賬號(hào)記錄顯示需要進(jìn)行授權(quán)認(rèn)證的提示信息界面(上圖6) -->3.在上一步界面中點(diǎn)擊開(kāi)始按鈕進(jìn)入用戶授權(quán)界面-->4.用戶輸入自己的微博賬號(hào)和密碼點(diǎn)擊確定然后關(guān)閉用戶授權(quán)界面(上圖 7)-->5.程序根據(jù)用戶的授權(quán)獲取這個(gè)賬號(hào)的信息保存到sqlite庫(kù)-->6.顯示用戶登錄選擇界面默認(rèn)賬號(hào)就是用戶剛剛授權(quán)的賬號(hào)
第二種情況實(shí)現(xiàn)過(guò)程:1.查詢sqlite數(shù)據(jù)庫(kù) -->2.已有賬號(hào)記錄獲取所有賬號(hào)信息并且顯示用戶登錄選擇界面 -->3.讀取上一次登錄的賬號(hào)作為界面的默認(rèn)選擇用戶顯示(如上圖2)-->4.點(diǎn)擊添加按鈕顯示賬號(hào)添加界面(如上圖 4)-->5.點(diǎn)擊切換按鈕顯示賬號(hào)選擇列表界面(如下圖3)-->6.點(diǎn)擊刪除按鈕顯示賬號(hào)刪除確認(rèn)界面(如下圖5)
從上面的實(shí)現(xiàn)過(guò)程看涉及到的主要知識(shí)點(diǎn):1.sqlite數(shù)據(jù)庫(kù)操作(創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建數(shù)據(jù)表、插入數(shù)據(jù)記錄、讀取數(shù)據(jù)記錄);2、oauth授權(quán)認(rèn)證(已經(jīng)由sdk實(shí)現(xiàn)了調(diào)用相關(guān)方法即可);3、NSUserDefaults存取(用來(lái)記錄上一次的登錄賬號(hào)) 現(xiàn)在正式開(kāi)始動(dòng)手做一一些準(zhǔn)備工作: 一、到 http://code.google.com/p/minblog4sina/(關(guān)于這個(gè)可以參看:iphone開(kāi)發(fā)我的新浪微博客戶端-開(kāi)篇)把我的這個(gè)sdk項(xiàng)目源代碼checkout到本地,然后用xcode打開(kāi)這個(gè)工程,在這個(gè)sdk工程的基礎(chǔ)上開(kāi)發(fā)微博客戶端應(yīng)用。 二、設(shè)計(jì)sqlite數(shù)據(jù)庫(kù)用來(lái)保存用戶賬號(hào)信息,我是用firefox的一個(gè)名為SQLite Manager的插件來(lái)創(chuàng)建sqlite數(shù)據(jù)庫(kù),這個(gè)使用非常簡(jiǎn)單就不介紹了自己裝起來(lái)就知道怎么使用,我用它創(chuàng)建了一個(gè)名為weibo.sqlite的 數(shù)據(jù)庫(kù),然后這這個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)名為loginUser的表用來(lái)保存賬號(hào)信息,loginUser表的,這個(gè)表包含5個(gè)字段分別用來(lái)保存 user_id、賬號(hào)昵稱、Access Token、Access Secret、賬號(hào)小圖標(biāo),具體如下圖: 三、用xcode打開(kāi)工程,然后把上一步完成的weibo.sqlite文件添加到工程的Resources文件夾中. ???? 四、在工程中添加類型為Objective-C class名為Sqlite的類用來(lái)負(fù)責(zé)sqlite庫(kù)的創(chuàng)建、記錄的讀取、記錄的添加等操作,同時(shí)在Xcode的左邊樹(shù)Frameworks右鍵添加名 為libsqlite3.dylib的Framework,這個(gè)類庫(kù)封裝了sqlite庫(kù)的操作。 ??? 五、打開(kāi)Sqlite.h添加如下代碼,在這個(gè)文件中首先import了sqlite3.h,這個(gè)就是Frameworks中的 libsqlite3.dylib類庫(kù),然后又import了User.h,這個(gè)是MinBlog4Sina的sdk中的用戶賬號(hào)對(duì)象類。又聲明的4個(gè)方 法分別是數(shù)據(jù)庫(kù)初始化、獲取用戶記錄列表、添加用戶記錄、刪除用戶記錄。
#import <Foundation/Foundation.h> #import <sqlite3.h> #import "User.h" @interface Sqlite : NSObject {??? sqlite3 *database; } -(Sqlite *)init; -(NSMutableArray *)getUserList; -(BOOL)addUser:(User *)user; -(BOOL)delUser:(NSString *)name; @end???? 六、打開(kāi)Sqlite.m添加如下代碼,這個(gè)文件里實(shí)現(xiàn)了上述的幾個(gè)方法,所謂的數(shù)據(jù)庫(kù)創(chuàng)建其實(shí)就是把上面第三個(gè)步驟中添加到工程的 weibo.sqlite文件拷貝到本軟件的目錄中,在下面的-(Sqlite *)init方法中進(jìn)行了拷貝操作。還有就是用戶記錄讀取和添加中關(guān)于BLOB類型的數(shù)據(jù)處理,這里存儲(chǔ)的是圖片數(shù)據(jù)了,在添加的時(shí)候把圖片轉(zhuǎn)換成 bytes類型,讀取的時(shí)候把bytes類型轉(zhuǎn)換成圖片。 #import "Sqlite.h" @interface Sqlite(private) -(void)createDatabaseIfNeeded:(NSString *)filename;-(NSString *)dataFilePath; -(BOOL)openDatabase; -(void)closeDatabase; @end @implementation Sqlite //初始化數(shù)據(jù)庫(kù) -(Sqlite *)init{??? if (self= [super init]) {??????? [self createDatabaseIfNeeded:@"weibo.sqlite"]; }??? return self; } -(BOOL)delUser:(NSString *)name{??? BOOL sucess=[self openDatabase];??? if (sucess) {?????? NSString *sql=[[NSString alloc] initWithFormat:@"delete from loginUser where screen_name=%@",name];??????? char *errorMsg;??????? if (sqlite3_exec(database, [sql UTF8String], NULL, NULL, &errorMsg)!=SQLITE_OK) {?????????? NSLog(@"del User error:%s",errorMsg);??????????? sqlite3_free(errorMsg);??????? } else {??????????????? }?????? [sql release];??? }??? [self closeDatabase];??? return sucess;??? } //添加用戶記錄-(BOOL)addUser:(User *)user {??? BOOL sucess=[self openDatabase];??? if (sucess) {??????? NSString *sql=[[NSString alloc] initWithFormat:@"insert into loginUser(user_id,screen_name,key,secret,icon)values(?,?,?,?,?)"];??????? sqlite3_stmt *statement;??????? if (sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, nil)==SQLITE_OK)??????? {??????????????? NSString *uid=[NSString stringWithFor

轉(zhuǎn)載于:https://blog.51cto.com/mkhgg/655035

總結(jié)

以上是生活随笔為你收集整理的iphone开发我的新浪微博客户端-用户登录准备篇(1.1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。