当前位置:
首页 >
iphone开发我的新浪微博客户端-用户登录准备篇(1.1)
发布时间:2023/11/29
49
豆豆
生活随笔
收集整理的这篇文章主要介绍了
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