簡體   English   中英

獲取核心數據SQLite數據庫的數量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM