我使用过NSNumber类.
但是可以使用的方法在以下环境中是不同的.
首先是命令行工具环境中的图片.(Mac os x)
其次是单视图应用环境中的图片.(IOS)
:不能使用isGreaterThan :, isGreaterThanOrEqualTo :, isLessThan:..等等方法
为什么这样?
1]第一张照片

2]第二张图片

你在Mac上看到的那些方法实际上并不是NSNumber该类的一部分,而是属于非正式协议的一部分,该协议NSComparisonMethods仅在Mac OS X上可用.该协议中的方法实际上只是使用该compare:方法的方便方法可用于许多Cocoa类.如果您愿意,可以NSNumber很容易地将这些方法作为一个类别来实现.这是我将如何实施-isGreaterThanOrEqualTo:.
@interface NSNumber (ConvenientComparison)
- (BOOL)isGreaterThanOrEqualTo:(id)object;
@end
@implementation NSNumber (ConvenientComparison)
- (BOOL)isGreaterThanOrEqualTo:(id)object
{
if (![object isKindOfClass:[NSNumber class]])
{
// Not sure what NSNumber does if you pass in something that isn't a number.
// Handle this case
return NO;
}
NSNumber *numberToCompareAgainst = (NSNumber *)object;
NSComparisonResult comparisonResult = [self compare:numberToCompareAgainst];
if (comparisonResult == NSOrderedSame || comparisonResult == NSOrdereedDescending)
return YES;
return NO;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2868 次 |
| 最近记录: |