diff --git a/appinventor/components-ios/src/JsonUtil.swift b/appinventor/components-ios/src/JsonUtil.swift index 95ab6564da0..9191ccc6f41 100644 --- a/appinventor/components-ios/src/JsonUtil.swift +++ b/appinventor/components-ios/src/JsonUtil.swift @@ -89,12 +89,16 @@ fileprivate func convertJsonItem(_ item: AnyObject?, _ useDicts: Bool) -> AnyObj } } else if let jsonArray = item as? NSArray { return getListFromJsonArray(jsonArray, useDicts) as AnyObject - } else if let bool = item as? Bool { - return bool as AnyObject + } else if let number = item as? NSNumber { + if number.isEqual(to: true as NSValue) { + return true as AnyObject + } else if number.isEqual(to: false as NSValue) { + return false as AnyObject + } else { + return number as AnyObject + } } else if let string = item as? String { return string as AnyObject - } else if let number = item as? NSNumber { - return number as AnyObject } return item.debugDescription as AnyObject } diff --git a/appinventor/schemekit/src/SCMValue.m b/appinventor/schemekit/src/SCMValue.m index 63432d125f9..cb677f61170 100644 --- a/appinventor/schemekit/src/SCMValue.m +++ b/appinventor/schemekit/src/SCMValue.m @@ -353,8 +353,10 @@ - (BOOL)isExact { } - (pic_value)value { - if (self.isBool) { - return self.boolValue ? pic_true_value(nil) : pic_false_value(nil); + if ([self isEqualToValue:[NSNumber numberWithBool:YES]]) { + return pic_true_value(nil); + } else if ([self isEqualToValue:[NSNumber numberWithBool:NO]]) { + return pic_false_value(nil); } else if (self.objCType[0] == 'f' || self.objCType[0] == 'd') { return pic_float_value(nil, self.doubleValue); } else {