2013-05-14 52 views
0

我有一個webservice,爲了確定某個位置是否有驅動器通過服務,我需要一個名爲driveThru的字段返回一個0字符串。如何在iOS Core Data中將NSString作爲BOOL進行管理?

我把那個「0」作爲字符串存儲在我的Core Data數據庫中,只是因爲它更容易存儲字符串。

所以我現在想要一個視圖控制器,它具有一個名爲self.driveThru的BOOL屬性,該屬性根據用戶是否敲擊單元格而設置爲true或false,以創建數據庫抓取的謂詞。

NSPredicate *predicate = [NSPredicate 
            predicateWithFormat:@"(driveThru == %@)", 
            self.driveThru]; 

我是否需要將self.driveThru(BOOL)轉換爲數字或字符串?

回答

0

我認爲你可以將該屬性的類型替換爲NSNumber。這將是一個更清晰的方法。或者您可以創建自己的映射函數,將「0」或「1」字符串映射到bools,反之亦然。

如果您按照第一個,當您從服務器檢索字符串值時,將它包裝成如下所示的數字。

BOOL boolVal = [yourServerString boolValue]; 
NSNumber* numberValue = [NSNumber numberWithBool:boolVal]; 

當你使用它只需要抓住這樣的boolValue

BOOL boolValue = [numberValue boolValue]; 

您的謂詞將如下所示。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"driveThru == %@", 
            [NSNumber numberWithBool:[self driveThru]]]; 

顯然,你也可以考慮爲你的實體創建子類併爲此使用標量值。

相關問題