从解析 object 中获取布尔值并在 Xcode 7、Swift 2 中对其执行 if/else 语句
Getting a boolean value from a parse object and performing a if/else statement on it in Xcode 7, Swift 2
标题说明了一切。我已经通读了 Parse 文档,它就在我 "new to coding" 的大脑中。如何获取我已经创建的解析布尔值 object,并根据它是否为真执行 if/else 语句?
谢谢
我使用的是 obj-c,而不是 Swift,所以我无法在语法方面帮助您,但是在 iOS 中,您需要 store/retrieve 将布尔值解析为 NSNumber。所以存储一个布尔值:
[myPFObject setObject:[NSNumber numberWithBool:myBool] forKey:@"myKey"];
用于检索该对象并将其用作 if/else 条件:
NSNumber *boolNumber = [myPFObject objectForKey:@"myKey"];
bool myBool = boolNumber.boolValue;
if( myBool )
...
显然,能够这样做取决于从解析中正确保存/获取对象,这会让很多人失望,因为它是同步的,就像在多线程中一样。假设您在对象上调用 fetch
,然后立即尝试访问该 bool 值。您将无法这样做,因为获取发生在一个单独的线程上,并且您的主线程会立即转到您尝试访问它的下一行。您需要使用 PFObjects 的 fetch/saveInBackgroundWithBlock 方法,并在回调内部(而不是外部)对值做任何您需要做的事情。
标题说明了一切。我已经通读了 Parse 文档,它就在我 "new to coding" 的大脑中。如何获取我已经创建的解析布尔值 object,并根据它是否为真执行 if/else 语句?
谢谢
我使用的是 obj-c,而不是 Swift,所以我无法在语法方面帮助您,但是在 iOS 中,您需要 store/retrieve 将布尔值解析为 NSNumber。所以存储一个布尔值:
[myPFObject setObject:[NSNumber numberWithBool:myBool] forKey:@"myKey"];
用于检索该对象并将其用作 if/else 条件:
NSNumber *boolNumber = [myPFObject objectForKey:@"myKey"];
bool myBool = boolNumber.boolValue;
if( myBool )
...
显然,能够这样做取决于从解析中正确保存/获取对象,这会让很多人失望,因为它是同步的,就像在多线程中一样。假设您在对象上调用 fetch
,然后立即尝试访问该 bool 值。您将无法这样做,因为获取发生在一个单独的线程上,并且您的主线程会立即转到您尝试访问它的下一行。您需要使用 PFObjects 的 fetch/saveInBackgroundWithBlock 方法,并在回调内部(而不是外部)对值做任何您需要做的事情。