如何为记录类型创建具有Bool类型的字段?

时间:2017-01-19 11:12:38

标签: ios swift cloudkit

当我尝试向记录类型添加新字段时,不可能添加Bool类型。我怎么能这样做?

enter image description here

2 个答案:

答案 0 :(得分:5)

参考Creating a Database Schema by Saving Records Apple文档,下表包含CloudKit可能的字段类型:

enter image description here

不幸的是,没有找到Bool类型。我发现 - 逻辑上 - 最适合替换Bool的是boolValue,因为:

表中提到的Int(64)类是NSNumber,其中let myFalseNumber:NSNumber = 0.0 let myTrueNumber:NSNumber = 0.01232 let anotherTrueNumber: NSNumber = -99 print(myFalseNumber.boolValue) // false print(myTrueNumber.boolValue) // true print(anotherTrueNumber.boolValue) // true 返回Swift Bool:

  

数字对象的值表示为布尔值。 0值   always始终表示false,任何非零值都被解释为true。

有关详细信息,请查看 NSNumber 文档。

这使得在应用程序中将Bool视为Bool变得容易。例如:

Int(64)

虽然DoubleInt(64)都被视为NSNumber,但选择Double而不是import urllib2 from BeautifulSoup import * import re url = 'http://python-data.dr-chuck.net/comments_324255.html' html = urllib2.urlopen(url).read() soup = BeautifulSoup(html) spans = soup('span') lis = list() span_str = str(spans) sp = re.findall('([0-9]+)', span_str) count = 0 for i in sp: count = count + int(i) print('Sum:', count) (CloudKit类型)的原因是将“1如果为真”的一般性如果为“则为0”(没有任何浮点数)。有关详细信息,您可能需要查看Boolean data type - Generalities (Wikipedia)

希望它有所帮助。

答案 1 :(得分:0)

CKRecord没有可用的Bool类型。最好的选择是Int(64)。

Source Apple Documentation