NSMutableNumber 1.2.0

NSMutableNumber 1.2.0

测试已测试
语言语言 Objective C++Objective C++
许可证 MIT
发布最新发布2016年9月

Oleh Kulykov维护。



  • Oleh Kulykov

NSMutableNumber - 完全线程安全的 mutable NSNumber 实现

Podfile

pod 'NSMutableNumber'

功能

  • 此类继承所有 NSNumber 协议,并覆盖了用于重复 NSNumber 读取功能所需的方法。
    NSNumber * number = (NSNumber *)[[NSMutableNumber alloc] initWithInt:0];
    // use actual number NSMutableNumber class as NSNumber, of couce read only
  • 所有 getter 都具有线程安全性。可用于跨线程同步。使用递归互斥锁来获取/设置值。
  • NSNumber 对象相同的哈希方法,这有助于作为 key/value 编码类中的键使用。
  • 被检测为 NSNumberNSValue 类的一种。
    NSMutableNumber * mutableNumber = [[NSMutableNumber alloc] init];
    [mutableNumber isKindOfClass:[NSNumber class]]; // YES, is kind of class
    [mutableNumber isKindOfClass:[NSMutableNumber class]]; // YES, is kind of class
  • 可以与本类(self,例如 NSMutableNumber)或 NSNumber 类比较。比较检查两个数字的真实、有符号和无符号值,并选择用于在值之间比较的必要方法。
    [[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
  • 使用 C++ 实现内部逻辑。具有与标准 NSNumber 相同的性能(见时间测试)以及存储值的最低内存量(使用联合)。
  • NSNumber 可通过额外的数字比较方法 isEqualToNumber: 与此类比较:
  • NSNumber 类别的 mutableCopy 方法,该方法返回 NSMutableNumber 类。

许可证


MIT 许可证 (MIT)

版权所有 (c) 2015 - 2016 Kulykov Oleh [email protected]

以下条件下,任何人都可以免费获得本软件及其相关文档副本(以下简称“软件”)的副本,以任何形式使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方提供软件的人士执行上述操作:

必须在所有副本或主要部分中包括上述版权声明和许可声明。

对本软件的提供方式为“现状”,不包括任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何事件中,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论该责任是由于合同、侵权还是其他原因,是否源于、与软件相关、与使用或以其他方式处置软件相关。