Source/NSNumber+TNLURLCoding.m (57 lines of code) (raw):
//
// NSNumber+TNLURLCoding.m
// TwitterNetworkLayer
//
// Created on 9/17/15.
// Copyright © 2020 Twitter. All rights reserved.
//
#import "NSNumber+TNLURLCoding.h"
NS_ASSUME_NONNULL_BEGIN
@implementation NSNumber (TNLBooleanCoding)
- (BOOL)tnl_isBoolean
{
if ((__bridge void *)self == (void *)kCFBooleanTrue) {
return YES;
} else if ((__bridge void *)self == (void *)kCFBooleanFalse) {
return YES;
}
return NO;
}
- (TNLBoolean *)tnl_booleanObject
{
return [[TNLBoolean alloc] initWithBool:self.boolValue];
}
@end
@implementation TNLBoolean
- (instancetype)init
{
return [self initWithBool:NO];
}
- (instancetype)initWithBool:(BOOL)boolValue
{
if (self = [super init]) {
_boolValue = boolValue;
}
return self;
}
- (nullable NSString *)tnl_URLEncodableStringValue
{
return self.stringValue;
}
- (NSString *)stringValue
{
return self.boolValue ? @"true" : @"false";
}
- (NSNumber *)numberValue
{
return [NSNumber numberWithBool:self.boolValue];
}
- (BOOL)isEqual:(id)other
{
if (other == self) {
return YES;
}
if ([other isKindOfClass:[TNLBoolean class]]) {
return self.boolValue == [(TNLBoolean *)other boolValue];
}
return NO;
}
- (NSUInteger)hash
{
return (NSUInteger)self.boolValue;
}
@end
NS_ASSUME_NONNULL_END