将Renren API iOS SDK代码加入Xcode工程
为了判断用户登录状态,需要引用Renren API iOS SDK提供的方法,因此这里需要先将之前下载到的Renren API iOS SDK代码加入到Xcode工程中。
通过在工程Classes目录下点击右键,分别执行“Add->New Group”和“Add->Existing Files...”,将Renren API iOS SDK中src目录下的文件都加入到工程中,加完后如下所示:
[编辑] 在NavRootViewController中创建Renren实例并判断用户登录状态
- 在NavRootViewController.h前面引用如下文件:
#import "RRConnect.h"
- 在NavRootViewController.h的@end前面加上一个属性,用于存储Renren实例:
@property (nonatomic, retain) Renren *renren;
- 在NavRootViewController.m的@implementation块开头加上合成代码:
@synthesize renren;
- 别忘了在NavRootViewController.m的dealloc方法中进行资源释放:
- (void)dealloc { [self setRenren:nil]; [super dealloc]; }
- 实现NavRootViewController.m的viewDidLoad方法,如下:
注意:initWithAppKeyAndId:andAppId:这个方法的两个参数分别指的是API Key和App ID,请一定注意将这里的两个值替换你自己的App的API Key和App ID
- (void)viewDidLoad { [super viewDidLoad]; self.renren = [[Renren alloc] initWithAppKeyAndId:@"02acbca93cd94983b8bc2cbf62912147" andAppId:@"144142"]; if (![self.renren isSessionValid]) { //No session, go to login //TODO } }
在上面这段代码中,我们创建了Renren实例,然后通过调用isSessionValid方法判断出用户是否处于登录状态。如果处于未登录状态,这里应该弹开登录界面让用户登录,代码下面会给出;如果处于登录状态,则走正常流程,接下来显示程序主界面。
[编辑] 弹开登录界面
- 在NavRootViewController.h开头添加如下前置声明:
@class RenrenLoginViewController;
- 在NavRootViewController.m顶部引用如下文件:
#import "RenrenLoginViewController.h"
- 在NavRootViewController.h中添加如下属性,用于存储管理登录界面的RenrenLoginViewController:
@property (nonatomic, retain) RenrenLoginViewController* renrenLoginViewController;
- 在NavRootViewController.m的@implementation块中加入如下合成代码:
@synthesize renrenLoginViewController;
- 别忘了在NavRootViewController.m的dealloc方法中对renrenLoginViewController属性进行释放:
- (void)dealloc { [self setRenren:nil]; [self setRenrenLoginViewController:nil]; [super dealloc]; }
- 将弹开登录界面的动作封装成一个方法,在NavRootViewController.h中添加如下方法声明:
- (void)openRenrenLoginView;
- 在NavRootViewController.m中添加如下方法实现:
- (void)openRenrenLoginView{ self.renrenLoginViewController = [[RenrenLoginViewController alloc] initWithNibName:@"RenrenLoginViewController" bundle:nil]; [self presentModalViewController:self.renrenLoginViewController animated:NO]; }
这段代码创建了RenrenLoginViewController实例,并采用Modal的方式来全屏展示它。
- 改写NavRootViewController.m的viewDidLoad方法,使得在判断出用户未登录状态下调用openRenrenLoginView方法弹开登录界面。改写后的viewDidLoad方法如下所示:
- (void)viewDidLoad { [super viewDidLoad]; self.renren = [[Renren alloc] initWithAppKeyAndId:@"02acbca93cd94983b8bc2cbf62912147" andAppId:@"144142"]; if (![self.renren isSessionValid]) { //No session, go to login [self openRenrenLoginView]; } }
- 编译后运行的结果,是显示用户登录界面(点击“用人人网帐号登录”的按钮还没有起作用,我们在下一节中完成):