前兩天碰到了一個問題,今天解決了,雖然不是自己解決的,但是問題已經解決了。我相信我以后不會被這個問題難倒了,也不會出現這樣的問題了。
我的問題是:我在做APP的時候,提交的是修改地址信息,但是返回的數據失敗,出錯了。因為是別人做過的,所以我先對了一下鏈接,一樣的啊,復制粘貼試了一次,但是還是出錯了。那么就要查請求的參數了,我就看他返回的參數有哪些,我復制他提交請求的數據,用字典把這些做參數傳上去,但是還是出錯了。
最后在表姐夫的幫助下,開始找問題,先是看鏈接,沒問題。然后看返回的參數,一樣,也沒有問題。最后,看了一下上傳的參數,一看是NSString類型,我說不對啊,我一開始的時候就是NSString的,怎么還是出錯了(這里說明一下,因為有返回的接口文檔,所以,我知道是什么類型的)。我想著肯定是一樣的,因為我一開始就給他是NSString的。
但是,我取回來的時候就已經錯了,下面是請求的數據。
{
data =? ? {
deliveryId = 72;
};
header =? ? {
clientRes = iOS;
msgType = setDefaultAddress;
timestamp = "2016-03-23 15:42:56";
token = 1b382ebdbc1e489dbc39003649b2251934060303966586280010944992359077;
};
}
NSString *deliveryid= data[@"deliveryid"];
我用這樣獲取到數據,他不是要NSString類型嗎,我給它。但是表姐夫跟我說不是接收的是什么類型,它就是什么類型的。因為deliveryid的類型是NSNumber類型,賦值給了NSString類型,所以沒起到效果。挺簡單的一個問題,就是沒去思考,這樣不好。
總結:取出來的是什么類型就是什么類型,不管你賦值給什么類型的對象,本身的類型不會改變。就像例子中的,取出來本身是NSNumber類型的,賦值給NSString類型了。雖然提交的時候也是相同的數,但是,它的格式已經出錯了,所以提交的時候總是失敗的。以后轉換類型的時候一定要看清楚,是什么類型就給什么類型,這樣就不會出錯了。
以后碰到問題,
一、要想是什么原因,把自己認為最有可能的問題試一下,把自己認為是的都驗證一下,還是沒有解決,那就動用工具。
二、百度,百度上各種各樣的問題都有,當然回答也是各種各樣的,有的是我要的答案,有的不是,就回答了。在百度中,找到答案有不理解的,把不理解的重新百度,到理解為止。還是不理解的,可以筆記下來,問表姐夫。
三、最后,把解決問題的答案寫在筆記中,還原之前的想法。原模原樣的把問題紀錄下來,這樣更加方便的理解和復習。在記錄的過程中還可以重現復習一遍,相當于鞏固了,這是一個不錯的學習方式。今天開始按照這樣的形式來完成,通過筆記的方式記錄每天的問題,ok,GoodBay!