iphone开发我的新浪微博客户端-用户登录准备篇(1.1)
生活随笔
收集整理的這篇文章主要介紹了
iphone开发我的新浪微博客户端-用户登录准备篇(1.1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第二種情況實現過程:1.查詢sqlite數據庫 -->2.已有賬號記錄獲取所有賬號信息并且顯示用戶登錄選擇界面 -->3.讀取上一次登錄的賬號作為界面的默認選擇用戶顯示(如上圖2)-->4.點擊添加按鈕顯示賬號添加界面(如上圖 4)-->5.點擊切換按鈕顯示賬號選擇列表界面(如下圖3)-->6.點擊刪除按鈕顯示賬號刪除確認界面(如下圖5)
從上面的實現過程看涉及到的主要知識點:1.sqlite數據庫操作(創建數據庫、創建數據表、插入數據記錄、讀取數據記錄);2、oauth授權認證(已經由sdk實現了調用相關方法即可);3、NSUserDefaults存取(用來記錄上一次的登錄賬號) 現在正式開始動手做一一些準備工作: 一、到 http://code.google.com/p/minblog4sina/(關于這個可以參看:iphone開發我的新浪微博客戶端-開篇)把我的這個sdk項目源代碼checkout到本地,然后用xcode打開這個工程,在這個sdk工程的基礎上開發微博客戶端應用。 二、設計sqlite數據庫用來保存用戶賬號信息,我是用firefox的一個名為SQLite Manager的插件來創建sqlite數據庫,這個使用非常簡單就不介紹了自己裝起來就知道怎么使用,我用它創建了一個名為weibo.sqlite的 數據庫,然后這這個數據庫中創建了一個名為loginUser的表用來保存賬號信息,loginUser表的,這個表包含5個字段分別用來保存 user_id、賬號昵稱、Access Token、Access Secret、賬號小圖標,具體如下圖: 三、用xcode打開工程,然后把上一步完成的weibo.sqlite文件添加到工程的Resources文件夾中. ???? 四、在工程中添加類型為Objective-C class名為Sqlite的類用來負責sqlite庫的創建、記錄的讀取、記錄的添加等操作,同時在Xcode的左邊樹Frameworks右鍵添加名 為libsqlite3.dylib的Framework,這個類庫封裝了sqlite庫的操作。 ??? 五、打開Sqlite.h添加如下代碼,在這個文件中首先import了sqlite3.h,這個就是Frameworks中的 libsqlite3.dylib類庫,然后又import了User.h,這個是MinBlog4Sina的sdk中的用戶賬號對象類。又聲明的4個方 法分別是數據庫初始化、獲取用戶記錄列表、添加用戶記錄、刪除用戶記錄。
#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???? 六、打開Sqlite.m添加如下代碼,這個文件里實現了上述的幾個方法,所謂的數據庫創建其實就是把上面第三個步驟中添加到工程的 weibo.sqlite文件拷貝到本軟件的目錄中,在下面的-(Sqlite *)init方法中進行了拷貝操作。還有就是用戶記錄讀取和添加中關于BLOB類型的數據處理,這里存儲的是圖片數據了,在添加的時候把圖片轉換成 bytes類型,讀取的時候把bytes類型轉換成圖片。 #import "Sqlite.h" @interface Sqlite(private) -(void)createDatabaseIfNeeded:(NSString *)filename;-(NSString *)dataFilePath; -(BOOL)openDatabase; -(void)closeDatabase; @end @implementation Sqlite //初始化數據庫 -(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
轉載于:https://blog.51cto.com/mkhgg/655035
總結
以上是生活随笔為你收集整理的iphone开发我的新浪微博客户端-用户登录准备篇(1.1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到砂锅碎了预示什么
- 下一篇: 培训总结2