NSMutableNumber - 完全线程安全的 mutable NSNumber 实现
pod 'NSMutableNumber'
NSNumber * number = (NSNumber *)[[NSMutableNumber alloc] initWithInt:0];
// use actual number NSMutableNumber class as NSNumber, of couce read only
NSMutableNumber * mutableNumber = [[NSMutableNumber alloc] init];
[mutableNumber isKindOfClass:[NSNumber class]]; // YES, is kind of class
[mutableNumber isKindOfClass:[NSMutableNumber class]]; // YES, is kind of class
[[NSMutableNumber numberWithBool:NO] isEqual:[NSNumber numberWithBool:NO]]; // YES, equal
[[NSMutableNumber numberWithBool:YES] isEqual:[NSNumber numberWithFloat:1]]; // YES, equal
[[NSMutableNumber numberWithDouble:DBL_MAX] isEqual:[NSNumber numberWithDouble:DBL_MAX]]; // YES, equal
[[NSMutableNumber numberWithChar:CHAR_MIN] isEqual:[NSNumber numberWithInteger:CHAR_MIN]]; // YES, equal
[[NSMutableNumber numberWithUnsignedShort:USHRT_MAX] isEqual:[NSNumber numberWithInt:USHRT_MAX]]; // YES, equal
[[NSMutableNumber numberWithInt:INT_MIN] isEqual:[NSNumber numberWithInt:INT_MIN]]; // YES, equal
[[NSMutableNumber numberWithInteger:NSIntegerMin] isEqual:[NSNumber numberWithInteger:NSIntegerMin]]; // YES, equal
[[NSMutableNumber numberWithUnsignedInteger:NSUIntegerMax] isEqual:[NSNumber numberWithUnsignedInteger:NSUIntegerMax]]; // YES, equal
[[NSMutableNumber numberWithUnsignedLongLong:ULONG_LONG_MAX] isEqual:[NSNumber numberWithUnsignedLongLong:ULONG_LONG_MAX]]; // YES, equal
MIT 许可证 (MIT)
版权所有 (c) 2015 - 2016 Kulykov Oleh [email protected]
以下条件下,任何人都可以免费获得本软件及其相关文档副本(以下简称“软件”)的副本,以任何形式使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方提供软件的人士执行上述操作:
必须在所有副本或主要部分中包括上述版权声明和许可声明。
对本软件的提供方式为“现状”,不包括任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何事件中,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论该责任是由于合同、侵权还是其他原因,是否源于、与软件相关、与使用或以其他方式处置软件相关。