首先聲明,本文純粹只是做為本人個人新手的理解。文中的想法我知道肯定有很多地方是錯的。
但是這就是我作為一個新人的使用方法,對於大牛非常歡迎指導,對於噴子請繞道而行。
由於這是早上跟我學長討論數據處理時,想到把我的實現手法寫個說明,所以就寫了。
之后的話我應該還會再寫一篇我學長的(比較標准的)處理方式。(當然要等他研究完后,給我看了之后我才能寫,嘿嘿。)
關於數據獲取使用鍵值對的方式而不是使用實體對象模型的原因
首先我的數據獲取的話是利用系統自帶的NSURL類來進行獲取的
我自己寫了個GetWebInfo類,將獲取部分的代碼全部放到里面(大家可以參照前面的數據獲取那章)
第一個版本是

1 -(NSString *)dogetWebInfo{ 2 3 NSURL *url = [NSURL URLWithString:WEBADDRESS]; 4 5 NSData *queram=[parameters dataUsingEncoding:NSUTF8StringEncoding]; 6 7 NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; 8 9 [urlRequest setHTTPMethod:@"POST"]; 10 11 [urlRequest setHTTPBody:queram]; 12 13 NSData* result = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:nil error:nil]; 14 15 NSString *string=[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding]; 16 17 return string; 18 19 } 20 21
今天早上討論突然發現封裝的還不夠徹底 應該返回的時候應該直接返回NSArray 的格式
需要再增加一個方法

1 -(NSArray *)dogetWebInfoForNSArray 2 3 { 4 5 NSURL *url = [NSURL URLWithString:WEBADDRESS]; 6 7 NSData *queram=[parameters dataUsingEncoding:NSUTF8StringEncoding]; 8 9 NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; 10 11 [urlRequest setHTTPMethod:@"POST"]; 12 13 [urlRequest setHTTPBody:queram]; 14 15 NSData* result = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:nil error:nil]; 16 17 NSString *string=[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding]; 18 19 NSData* jsonData=[string dataUsingEncoding:NSUTF8StringEncoding]; 20 21 NSArray *keys = [NSJSONSerialization 22 23 JSONObjectWithData:jsonData 24 25 options:NSJSONReadingMutableContainers 26 27 error:nil]; 28 29 30 31 return keys; 32 33 }
獲取過來的數據我是直接這樣使用的
allcount=[[keys valueForKey:@"total"] integerValue];
[self.list addObjectsFromArray:[keys valueForKey:@“rows"]];
在綁定tableViewCell的數據時候我是 這樣操作的
cell.content.text=[[_list objectAtIndex:[indexPath row]] valueForKey:@"內容"];
cell.username.text=[[_list objectAtIndex:[indexPath row]] valueForKey:@"成員名"];
cell.timelabel.text=[[_list objectAtIndex:[indexPath row]] valueForKey:@“時間"];
我之所以直接使用NSArray 也是適當經過考慮的,
首先我沒有在iOS開發上面建立過MODEL 沒有通過這樣的方式來實現(當然我也知道這是非常不符合規范的。)可是我還是選擇了使用我自己這種方式
由於我是寫C#的,所以我們使用的模式的概念應該是差不多的。如果要再iOS開發當中使用Model 的話,我們肯定需要新建很多個Model。(這里需要編寫一部分的代碼)
接下來使用的時候我們可能就是 如下的步驟
先獲取數—>獲取了數據之后 轉換成對應的Model—>然后使用
使用的方式應該就是如下的方式
cell.content.text=Model.內容;
cell.username.text=model.成員名
cell.timelabel.text=model.時間
而我的那種方案則是將鍵值對做為一種 通用的Model 來使用
其實就是我的步驟應該就是如下的過程
先獲取數—>獲取了數據之后直接轉化成NSArray數組—>然后使用
我們直接跨過了抓換對應model的步驟。
我之所以這么使用是因為個人感覺其實我們在編寫小型項目的時候,每個頁面使用的數據都非常明確,其次在手機上開發的話考慮到傳輸速度的問題,都是盡量的減少冗余的數據傳遞,用什么就傳什么,所以我們在編寫每個頁面的時候都非常的清楚該頁面需要使用的數據是什么。
其次的話感覺編寫手機應用更多的是做 兩種操作
1、顯示
2、傳值
而類似其他的一些復雜的數據處理都應該交由后台來處理。(當然這可能跟我目前開發的項目類型有關。)
所以我們對於每個頁面需要顯示的數據,需要傳遞的數據都是非常明確的,所以用這種鍵值對的方式來處理數據我個人感覺也是挺方便的。