[英]Getting Number of out Core-Data SQLite Database
使用核心數據保存各種信息,其中之一是“數字”屬性(Int(16))。 我嘗試使用以下方法將其從數據庫中取出: number = (int)[info valueForKey:@"number"]
;
不幸的是,這總是會產生一些可怕的結果,例如2895891275應該返回3。
希望得到任何幫助,謝謝!
valueForKey
返回一個對象,而不是一個int。 您必須顯式轉換它的事實應該是一個警告信號。 嘗試:
number = [[info valueForKey:@"number"] intValue];
要擴展@duskwuffs答案:
核心數據中的所有值都是對象。 當您將屬性類型設置為Int16時,Core Data將創建一個NSNumber對象。
這段代碼:
number = (int)[info valueForKey:@"number"]
...給您一個巨大的數字,因為[info valueForKey:@"number"]
返回一個NSNumber的實例,該對象已轉換為int。 當您將一個對象強制轉換為一個int時,實際上是將其在內存中的地址強制轉換為一個int,因此最終得到一個很大的無意義的數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.