在開(kāi)發(fā)中壶栋,不知道各位開(kāi)發(fā)有沒(méi)有遇到過(guò)這種情況假抄,對(duì)于服務(wù)器返回的null深有體會(huì)朵栖,動(dòng)不動(dòng)會(huì)導(dǎo)致NSDictionary和NSArray放入空的值近上,從而導(dǎo)致crash剔宪;這個(gè)蛋痛的經(jīng)歷又不多說(shuō)了;
解決
想到的是category, 的確可以滿(mǎn)足我的需求, 可以重寫(xiě)掉一些構(gòu)造方法
NSDictionary:
+(instancetype)dictionaryWithObjects:(const id[])objects forKeys:(const id[])keys count:(NSUInteger)cnt
{
NSMutableArray *validKeys = [NSMutableArray new];
NSMutableArray *validObjs = [NSMutableArray new];
for (NSUInteger i = 0; i < cnt; i ++) {
if (objects[i] && keys[i])
{
[validKeys addObject:keys[i]];
[validObjs addObject:objects[i]];
}
}
return [self dictionaryWithObjects:validObjs forKeys:validKeys];
}
NSArray:
+(instancetype)arrayWithObjects:(const id [])objects count:(NSUInteger)cnt
{
NSMutableArray *ma = [NSMutableArray new];
for (NSUInteger i = 0; i < cnt; i ++) {
if (objects[i])
{
[ma addObject:objects[i]];
}
}
return [[NSArray alloc] initWithArray:ma];
}
測(cè)試一波
5CB2FE9D-722E-431C-92D8-8375ACA9B9B5.png