1. 測試時, 可以使用下面這個**及**來測試, 裡面有模型,陣列,以及字典, 還可以有long long 轉nsdate, string 轉 int等。
nsurl
*url = [
nsurl
urlwithstring
:@""];
[nsurlconnection
sendasynchronousrequest
:[nsurlrequest
requestwithurl
:url]
queue
:[nsoperationqueue
mainqueue]
completionhandler
:^(nsurlresponse
* response,
nsdata
* data,
nserror
* connectionerror)
else }
}];2. 使用時,需要把該模型有哪些屬性值寫清楚, 轉的時候mantle才知道哪些是需要轉的。型別建議使用nsstring, nsnumber, nsarray, nsdictionary, 等,不建議使用基本型別。
@inte***ce
firstinte***cemodel :
mtlmodel
<
mtljsonserializing
>
@property
(nonatomic
,strong
) nsdate
*date;
@property
(nonatomic
,strong
) nsnumber
*humidity;
@property
(nonatomic
,strong
) nsnumber
*temperature;
@property
(nonatomic
,strong
) nsstring
*cod;
@property
(nonatomic
,strong
) nsstring
*name;
@property
(nonatomic
,strong
) nsstring
****teststr;
@property
(nonatomic
,strong
) nsarray
*arrweathers;
@property
(nonatomic
,strong
) sysmodel
*sys;
@end
3. 實現
+ (nsdictionary
*)jsonkeypathsbypropertykey
上面這個方法, 可以把伺服器返回的字段與當前的屬性名比較,如果相同,則直接使用,如果不相同的, 則與mutdic中的value進行比較, 然後轉換成對應key的屬性值。
4. 如果上面的伺服器返回的cod為整弄,205這樣的資料, 但我們這裡定義的屬性值為nsstring, 則就需要下面這樣的方式來進行轉換,注意下面這個方法是雙向轉換。
+ (nsvaluetransformer
*)codjsontransformer
reverseblock
:^id(id
value,
bool
*success,
nserror
*__autoreleasing
*error) ]; }
再附乙個伺服器返回的dt為乙個long long整型,這裡需要乙個nsdate.
+ (nsvaluetransformer
*)datejsontransformer
reverseblock
:^id(id
value,
bool
*success,
nserror
*__autoreleasing
*error) ]; }
5. 附乙個model內嵌model的實現, 注意和上面最初的型別一樣,是乙個sysmodel.class.
+ (nsvaluetransformer
*)sysjsontransformer ]; }
然後就會得到乙個內嵌的sysmodel物件。
6. 再加上乙個陣列的物件。伺服器返回的weather是乙個陣列, 然後陣列中的物件是weathermodel.
+ (nsvaluetransformer
*)arrweathersjsontransformer
7. 再來乙個安全方法。如果我們要求其中的cod不能為空,我們就可以實現下面這個方法,來對當其中有資料為空時,進行乙個容錯處理。下面這個方法,當伺服器有返回資料為null的鍵值時,而本地又對這個鍵做了屬性匹配時,就會呼叫下面這個方法,一般情況下可能會崩潰, 所以建議如果有一些重要的不能為null的鍵,可以在這裡進行處理。
- (void
)setnilvalueforkey:(
nsstring
*)key
else }
注意這個方法僅對非指標型別有用,即int float, bool等, 其它型別要想容錯[nsnull null], 需要在
mtlvaluetransformer
transformerusingforwardblock
中進行識別處理。
oracle rownum使用小記
對於 oracle 的 rownum 問題,很多資料都說不支援 between.and,只能用以上符號 並非說用 gt between.and 時會提示sql語法錯誤,而是經常是查不出一條記錄來,還會出現似乎是莫名其妙的結果來,其實您只要理解好了這個 rownum 偽列的意義就不應該感到驚奇,同樣是...
libtiff使用小記
這兩天就跟libtiff庫卯上了,總會遇到奇怪的問題。現在問題或直接或曲折的解決了,一一記錄下來。問題一 tiffsetdirectory函式的使用。目的 交叉讀取tiff中兩頁的每一行,假設第一頁tif為tif 0,第二頁tif為tif 1。我的目的就是先讀tif 0的第i行,然後讀tif 1的第...
mysql使用小記
最近專案開發採用mysql作資料庫,邏輯全部封裝到儲存過程,c otl訪問。1 otl對mysql的支援並不咋的,不能訪問帶out型別的儲存過程。解決方案是將out引數放在結果集中返回 後果是每條結果都包含這個變數.2 otl不能返回不同的結果集,只能選擇拆分儲存過程。3 update不能用row ...