iOS-Categories/IOS-Categories/Foundation/NSDictionary/NSDictionary+SafeAccess.m
来源:互联网 发布:软件使用说明模板 编辑:程序博客网 时间:2024/06/16 02:22
//// NSDictionary+SafeAccess.m// IOS-Categories//// Created by Jakey on 15/1/25.// Copyright (c) 2015年 www.skyfox.org. All rights reserved.//#import "NSDictionary+SafeAccess.h"@implementation NSDictionary (SafeAccess)- (BOOL)hasKey:(NSString *)key{ return [self objectForKey:key] != nil;}- (NSString*)stringForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return nil; } if ([value isKindOfClass:[NSString class]]) { return (NSString*)value; } if ([value isKindOfClass:[NSNumber class]]) { return [value stringValue]; } return nil;}- (NSNumber*)numberForKey:(id)key{ id value = [self objectForKey:key]; if ([value isKindOfClass:[NSNumber class]]) { return (NSNumber*)value; } if ([value isKindOfClass:[NSString class]]) { NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; [f setNumberStyle:NSNumberFormatterDecimalStyle]; return [f numberFromString:(NSString*)value]; } return nil;}- (NSArray*)arrayForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return nil; } if ([value isKindOfClass:[NSArray class]]) { return value; } return nil;}- (NSDictionary*)dictionaryForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return nil; } if ([value isKindOfClass:[NSDictionary class]]) { return value; } return nil;}- (NSInteger)integerForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSString class]] || [value isKindOfClass:[NSNumber class]]) { return [value integerValue]; } return 0;}- (NSUInteger)unsignedIntegerForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSString class]] || [value isKindOfClass:[NSNumber class]]) { return [value unsignedIntegerValue]; } return 0;}- (BOOL)boolForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return NO; } if ([value isKindOfClass:[NSNumber class]]) { return [value boolValue]; } if ([value isKindOfClass:[NSString class]]) { return [value boolValue]; } return NO;}- (int16_t)int16ForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSNumber class]]) { return [value shortValue]; } if ([value isKindOfClass:[NSString class]]) { return [value intValue]; } return 0;}- (int32_t)int32ForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSNumber class]] || [value isKindOfClass:[NSString class]]) { return [value intValue]; } return 0;}- (int64_t)int64ForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSNumber class]] || [value isKindOfClass:[NSString class]]) { return [value longLongValue]; } return 0;}- (char)charForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSNumber class]] || [value isKindOfClass:[NSString class]]) { return [value charValue]; } return 0;}- (short)shortForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSNumber class]]) { return [value shortValue]; } if ([value isKindOfClass:[NSString class]]) { return [value intValue]; } return 0;}- (float)floatForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSNumber class]] || [value isKindOfClass:[NSString class]]) { return [value floatValue]; } return 0;}- (double)doubleForKey:(id)key{ id value = [self objectForKey:key]; if (value == nil || value == [NSNull null]) { return 0; } if ([value isKindOfClass:[NSNumber class]] || [value isKindOfClass:[NSString class]]) { return [value doubleValue]; } return 0;}- (long long)longLongForKey:(id)key{ id value = [self objectForKey:key]; if ([value isKindOfClass:[NSString class]] || [value isKindOfClass:[NSNumber class]]) { return [value longLongValue]; } return 0;}- (unsigned long long)unsignedLongLongForKey:(id)key{ id value = [self objectForKey:key]; if ([value isKindOfClass:[NSString class]]) { NSNumberFormatter *nf = [[NSNumberFormatter alloc] init]; value = [nf numberFromString:value]; } if ([value isKindOfClass:[NSNumber class]]) { return [value unsignedLongLongValue]; } return 0;}//CG- (CGFloat)CGFloatForKey:(id)key{ CGFloat f = [self[key] doubleValue]; return f;}- (CGPoint)pointForKey:(id)key{ CGPoint point = CGPointFromString(self[key]); return point;}- (CGSize)sizeForKey:(id)key{ CGSize size = CGSizeFromString(self[key]); return size;}- (CGRect)rectForKey:(id)key{ CGRect rect = CGRectFromString(self[key]); return rect;}@end#pragma --mark NSMutableDictionary setter@implementation NSMutableDictionary (SafeAccess)-(void)setObj:(id)i forKey:(NSString*)key{ if (i!=nil) { self[key] = i; }}-(void)setString:(NSString*)i forKey:(NSString*)key;{ [self setValue:i forKey:key];}-(void)setBool:(BOOL)i forKey:(NSString *)key{ self[key] = @(i);}-(void)setInt:(int)i forKey:(NSString *)key{ self[key] = @(i);}-(void)setInteger:(NSInteger)i forKey:(NSString *)key{ self[key] = @(i);}-(void)setUnsignedInteger:(NSUInteger)i forKey:(NSString *)key{ self[key] = @(i);}-(void)setCGFloat:(CGFloat)f forKey:(NSString *)key{ self[key] = @(f);}-(void)setChar:(char)c forKey:(NSString *)key{ self[key] = @(c);}-(void)setFloat:(float)i forKey:(NSString *)key{ self[key] = @(i);}-(void)setDouble:(double)i forKey:(NSString*)key{ self[key] = @(i);}-(void)setLongLong:(long long)i forKey:(NSString*)key{ self[key] = @(i);}-(void)setPoint:(CGPoint)o forKey:(NSString *)key{ self[key] = NSStringFromCGPoint(o);}-(void)setSize:(CGSize)o forKey:(NSString *)key{ self[key] = NSStringFromCGSize(o);}-(void)setRect:(CGRect)o forKey:(NSString *)key{ self[key] = NSStringFromCGRect(o);}@end
0 0
- iOS-Categories/IOS-Categories/Foundation/NSDictionary/NSDictionary+SafeAccess.m
- NSDictionary-Categories
- ios - Foundation框架 - NSDictionary
- IOS-foundation基础 NSDictionary
- ios nsdictionary
- iOS NSDictionary
- iOS--NSDictionary
- ios NSDictionary
- ios NSDictionary
- Categories
- Categories
- Categories
- Categories
- Foundation--NSDictionary
- Foundation NSDictionary
- Foundation-NSDictionary
- iOS中Categories和Extensions的区别
- iOS - Categories&&Extensions (类别和扩展)
- Code Complete读书(六)-可以工作的类
- mx:Tree改变父节点与子节点的样式
- 设计模式的六大原则
- easyui js 上传图片加预览功能
- 5.0新特性RecyclerView
- iOS-Categories/IOS-Categories/Foundation/NSDictionary/NSDictionary+SafeAccess.m
- 编程之美之程序理解和时间分析
- 数据库报错——check the manual that corresponds to your MySQL server version for the right
- 《c++ primer》 习题3.7-3.10
- linux下Apache的简单操作
- C++primer 标准库类型和内置类型默认的初始化
- 移动web开发框架
- 2014,这些邮件设计好厉害!
- 企业做微信营销最基本的条件是以人为本