栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

-[NSNull长度]:无法识别的选择器发送到JSON对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

-[NSNull长度]:无法识别的选择器发送到JSON对象

我对JSON解释器疯狂使用NSNull的解决方案是在NSNull上创建一个类别,在该类别中我定义integerValue,floatValue,length等-
全部返回0。每次遇到其他崩溃时,都添加一个新类别。当我遇到此问题时,我认为我有6或7。

不这样做的问题是,您必须在转换后的对象中到处寻找NULL-我认为是PITA。

编辑:我正在使用的代码,全部在NSNull + JSON.m文件中:

@interface NSNull (JSON)@end@implementation NSNull (JSON)- (NSUInteger)length { return 0; }- (NSInteger)integerValue { return 0; };- (float)floatValue { return 0; };- (NSString *)description { return @"0(NSNull)"; }- (NSArray *)componentsSeparatedByString:(NSString *)separator { return @[]; }- (id)objectForKey:(id)key { return nil; }- (BOOL)boolValue { return NO; }@end

EDIT2:现在在Swift 3中:

extension NSNull {   func length() -> Int { return 0 }   func integerValue() -> Int { return 0 }   func floatValue() -> Float { return 0 };   open override var description: String { return "0(NSNull)" }   func componentsSeparatedByString(separator: String) -> [AnyObject] { return [AnyObject]() }   func objectForKey(key: AnyObject) -> AnyObject? { return nil }   func boolValue() -> Bool { return false }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485414.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号