国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

利用iOSAPI編寫簡(jiǎn)單微博客戶端全過(guò)程

2019-11-14 19:52:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

要編寫社交網(wǎng)絡(luò)客戶端程序,可以大體上分為4個(gè)主要的步驟

 

5

下面我們按照這個(gè)流程,介紹一下:

1、引入Accounts和Social框架

工 程中需要引入Accounts和Social框架,Accounts框架中有進(jìn)行用戶賬戶認(rèn)證所需類,Social框架中SLRequest類是我們所需 要的。添加具體步驟是選擇工程中的TARGETS→WeiBo→Build Phases→Link Binary With Libraries,選擇 右下角的“+”按鈕,打開(kāi)框架和庫(kù)選擇對(duì)話框。

6

分別選擇Social.framework添加,再選擇Accounts.framework添加。

 

2、用戶賬戶認(rèn)證

用 戶賬戶認(rèn)證使用ACAccount、ACAccountStore和ACAccountType類,ACAccount類是封裝用戶賬戶信息,這些信息存 儲(chǔ)在賬戶數(shù)據(jù)庫(kù)中,ACAccountStore類用來(lái)管理賬戶數(shù)據(jù)庫(kù),ACAccountType類描述了賬戶類型。

認(rèn)證過(guò)程的模板代碼如下:

java代碼 復(fù)制代碼 收藏代碼
  1. ACAccountStore *account = [[ACAccountStore alloc] init]; ①  
  2.   
  3. ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:  
  4.   
  5. ACAccountTypeIdentifierSinaWeibo]; ②  
  6.   
  7. [account requestaccessToAccountsWithType:accountType options:nil  
  8.   
  9. completion:^(BOOL granted, NSError *error) ③  
  10.   
  11. {  
  12.   
  13. if (granted == YES) ④  
  14.   
  15. {  
  16.   
  17. NSArray *arrayOfAccounts = [account  
  18.   
  19. accountsWithAccountType:accountType]; ⑤  
  20.   
  21. if ([arrayOfAccounts count] > 0) ⑥  
  22.   
  23. {  
  24.   
  25. <認(rèn)證通過(guò)>  
  26.   
  27. }  
  28.   
  29. };  
  30.   
  31. }];  
ACAccountStore *account = [[ACAccountStore alloc] init]; ①ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierSinaWeibo]; ②[account requestAccessToAccountsWithType:accountType options:nilcompletion:^(BOOL granted, NSError *error) ③{if (granted == YES) ④{NSArray *arrayOfAccounts = [accountaccountsWithAccountType:accountType]; ⑤if ([arrayOfAccounts count] > 0) ⑥{<認(rèn)證通過(guò)>}};}];

 

 

3、發(fā)送請(qǐng)求

用戶認(rèn)證通過(guò)就可以進(jìn)行發(fā)送使用SLRequest對(duì)象發(fā)送請(qǐng)求,創(chuàng)建SLRequest對(duì)象可以使用類級(jí)構(gòu)造方法

Java代碼 復(fù)制代碼 收藏代碼
  1. requestForServiceType:requestMethod:URL:parameters:,下面是代碼是創(chuàng)建SLRequest對(duì)象:  
  2.   
  3. SLRequest *request = [SLRequest  requestForServiceType:SLServiceTypeSinaWeibo  
  4.   
  5. requestMethod:SLRequestMethodGET  
  6.   
  7. URL:requestURL  
  8.   
  9. parameters:parameters];  
  10.   
  11. 上面的代碼還只是創(chuàng)建了SLRequest對(duì)象,我們還需要為請(qǐng)求對(duì)象設(shè)置賬戶信息,使用下面的語(yǔ)句:  
  12.   
  13. request.account = weiboAccount;  
  14.   
  15. weiboAccount賬戶信息是我們從用戶賬戶信息數(shù)據(jù)庫(kù)中獲得的,設(shè)置給請(qǐng)求對(duì)象的account屬性,然后才能提交給社交網(wǎng)絡(luò)服務(wù)器進(jìn)行認(rèn)證。  
  16.   
  17. 具體開(kāi)始請(qǐng)求是通過(guò)調(diào)用SLRequest 的performRequestWithHandler:方法實(shí)現(xiàn)的,代碼如下:  
  18.   
  19. [request performRequestWithHandler:^(NSData *responseData,  
  20.   
  21. NSHTTPURLResponse *urlResponse, NSError *error) {  
  22.   
  23. <處理請(qǐng)求結(jié)果>  
  24.   
  25. }];  
requestForServiceType:requestMethod:URL:parameters:,下面是代碼是創(chuàng)建SLRequest對(duì)象:SLRequest *request = [SLRequest  requestForServiceType:SLServiceTypeSinaWeiborequestMethod:SLRequestMethodGETURL:requestURLparameters:parameters];上面的代碼還只是創(chuàng)建了SLRequest對(duì)象,我們還需要為請(qǐng)求對(duì)象設(shè)置賬戶信息,使用下面的語(yǔ)句:request.account = weiboAccount;weiboAccount賬戶信息是我們從用戶賬戶信息數(shù)據(jù)庫(kù)中獲得的,設(shè)置給請(qǐng)求對(duì)象的account屬性,然后才能提交給社交網(wǎng)絡(luò)服務(wù)器進(jìn)行認(rèn)證。具體開(kāi)始請(qǐng)求是通過(guò)調(diào)用SLRequest 的performRequestWithHandler:方法實(shí)現(xiàn)的,代碼如下:[request performRequestWithHandler:^(NSData *responseData,NSHTTPURLResponse *urlResponse, NSError *error) {<處理請(qǐng)求結(jié)果>}];

 

 

4、處理請(qǐng)求結(jié)果

請(qǐng)求結(jié)束會(huì)調(diào)用代碼塊,我們?cè)诖a塊中處理請(qǐng)求結(jié)果。基本工作是解析數(shù)據(jù),以及UI的更新等操作。這3個(gè)社交網(wǎng)絡(luò)服務(wù)返回的都是JSON格式數(shù)據(jù),其中代碼塊中的responseData參數(shù)可以使用NSJSONSerialization解析JSON對(duì)象:

Java代碼 復(fù)制代碼 收藏代碼
  1. id jsonObj = [NSJSONSerialization JSONObjectWithData:responseData  
  2.   
  3. options:NSJSONReadingAllowFragments error:&err];  
id jsonObj = [NSJSONSerialization JSONObjectWithData:responseDataoptions:NSJSONReadingAllowFragments error:&err];

 

解析的jsonObj對(duì)象結(jié)構(gòu)根據(jù)社交網(wǎng)絡(luò)服務(wù)的不同而不同,詳細(xì)參數(shù)情況請(qǐng)參考不同服務(wù)的開(kāi)發(fā)者網(wǎng)站。

下 面我們通過(guò)一個(gè)實(shí)例介紹一下SLRequest的使用,在表視圖畫面中,可以下拉刷新視圖,獲得最新的社交網(wǎng)絡(luò)服務(wù)信息。點(diǎn)擊畫面導(dǎo)航欄的Action按 鈕,會(huì)彈出撰寫信息的模態(tài)視圖(右圖所示),撰寫完成之后點(diǎn)擊“Save”按鈕發(fā)送信息,可以點(diǎn)擊“Cancel”按鈕取消發(fā)送。

7

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临颍县| 平江县| 长丰县| 富顺县| 启东市| 资阳市| 鄯善县| 墨竹工卡县| 万荣县| 绥德县| 东明县| 襄汾县| 新平| 嘉善县| 都昌县| 西城区| 遂昌县| 临西县| 巴彦淖尔市| 象山县| 黄山市| 满洲里市| 林口县| 阿克苏市| 金平| 洪江市| 贵港市| 闸北区| 普兰店市| 阜南县| 小金县| 蒲江县| 巫山县| 凤翔县| 宜兰市| 琼结县| 广水市| 湘潭县| 沙湾县| 宣化县| 双流县|