NSComparisonResul、NSNotFound、NSEnumerationOptions......的用处

NSNotFound

定义一个值,用于指示请求项找不到或不存在。
Defines a value that indicates that an item requested couldn’t be found or doesn’t exist.

enum { NSNotFound = NSIntegerMax};

NSEnumerationOptions

块枚举操作的选项。
Options for Block enumeration operations.

enum { NSEnumerationConcurrent = (1UL << 0), NSEnumerationReverse = (1UL << 1),};typedef NSUInteger NSEnumerationOptions;

Options:位枚举

 NSString *str = @"abc";
NSString *str1 = @"Abc";
// 比较的时候不区分大小写
NSComparisonResult result = [str compare:str1 options:NSCaseInsensitiveSearch|];
switch (result) {
case NSOrderedAscending:
NSLog(@"str < str1,升序");
break;
case NSOrderedDescending:
NSLog(@"str > str1,降序");
break;
case NSOrderedSame:
NSLog(@"str == str1,");
break;
default:
break;
        NSString *str = @"abc";
NSString *str1 = @"ab";
// 比较的时候不区分大小写和根据个数
NSComparisonResult result = [str compare:str1 options:NSCaseInsensitiveSearch|NSNumericSearch];
switch (result) {
case NSOrderedAscending:
NSLog(@"str < str1,升序");
break;
case NSOrderedDescending:
NSLog(@"str > str1,降序");
break;
case NSOrderedSame:
NSLog(@"str == str1,");
break;
default:
break;

NSComparisonResult

这些常量用于指示请求中的条目如何排序。
These constants are used to indicate how items in a request are ordered.

enum {
NSOrderedAscending = -1, -1 升序
NSOrderedSame, 0 降序
NSOrderedDescending 1 ==
};
typedef NSInteger NSComparisonResult;
        NSString *str = @"abc";
NSString *str1 = @"abd";
NSComparisonResult result = [str compare:str1];
switch (result) {
case NSOrderedAscending:
NSLog(@"str < str1,升序");
break;
case NSOrderedDescending:
NSLog(@"str > str1,降序");
break;
case NSOrderedSame:
NSLog(@"str == str1,");
break;
default:
break;
 

NSSortOptions

块排序操作的选项。
Options for Block sorting operations.

struct NSSortOptions : RawOptionSetType {
init(_ rawValue: UInt)
init(rawValue rawValue: UInt)
static var Concurrent: NSSortOptions { get }
static var Stable: NSSortOptions { get }
}
enum { NSSortConcurrent = (1UL << 0), NSSortStable = (1UL << 4),};typedef NSUInteger NSSortOptions;

NSSearchPathDirectory

这些常量指定了各种目录位置,用于方法 URLsForDirectory:inDomains: 和 URLForDirectory:inDomain:appropriateForURL:create:error: NSFileManager 。
These constants specify the location of a variety of directories by the URLsForDirectory:inDomains: andURLForDirectory:inDomain:appropriateForURL:create:error: NSFileManager methods.

enum {	NSApplicationDirectory = 1,	NSDemoApplicationDirectory,	NSDeveloperApplicationDirectory,	NSAdminApplicationDirectory,	NSLibraryDirectory,	NSDeveloperDirectory,	NSUserDirectory,	NSDocumentationDirectory,	NSDocumentDirectory,	NSCoreServiceDirectory,	NSAutosavedInformationDirectory = 11,	NSDesktopDirectory = 12,	NSCachesDirectory = 13,	NSApplicationSupportDirectory = 14,	NSDownloadsDirectory = 15,	NSInputMethodsDirectory = 16,	NSMoviesDirectory = 17,	NSMusicDirectory = 18,	NSPicturesDirectory = 19,	NSPrinterDescriptionDirectory = 20,	NSSharedPublicDirectory = 21,	NSPreferencePanesDirectory = 22,	NSItemReplacementDirectory = 99,	NSAllApplicationsDirectory = 100,	NSAllLibrariesDirectory = 101,};typedef NSUInteger NSSearchPathDirectory;

NSInteger and NSUInteger Maximum and Minimum Values

代表 NSInteger 和 NSUInteger 的最大值和最小值的常量。
Constants representing the maximum and minimum values of NSInteger and NSUInteger.

#define NSIntegerMaxLONG_MAX#define NSIntegerMinLONG_MIN #define NSUIntegerMax ULONG_MAX

2、基础数据类型参考 Foundation Data Types Reference (以下仅选出常用的部分,完整列表可点击此行标题转入官网链接)

NSInteger

用于描述一个整型。(这个不是一个类,而是一个宏定义,是 C 长整型的别名)
Used to describe an integer.

typedef long NSInteger;

NSUInteger

用于描述一个无符号整型。(这个也不是一个类,而是一个宏定义,是 C 无符号长整型的别名)
Used to describe an unsigned integer.

typedef unsigned long NSUInteger;

NSTimeInterval

用于指定一个时间间隔,单位 秒。
Used to specify a time interval, in seconds.
以下这句原文,后半句关于毫秒部分的精度,没太明白,有懂得帮准确翻译一下,在此谢过。
NSTimeInterval is always specified in seconds; it yields sub-millisecond precision over a range of 10,000 years.

typedef double NSTimeInterval;

NSUncaughtExceptionHandler

用于处理异常处理域之外的异常。也即系统无法捕获的异常,配合 XCode 做异常跟踪很有用处。
Used for the function handling exceptions outside of an exception-handling domain.

typedef volatile void NSUncaughtExceptionHandler(NSException *exception);

NSStringEncoding

该类型代表字符串编码值。
Type representing string-encoding values.

typedef NSUInteger NSStringEncoding;

String Encodings

以下常量由 NSString 提供,作用可用的字符串编码。
The following constants are provided by NSString as possible string encodings.

enum { NSASCIIStringEncoding = 1,
。。。 NSUTF8StringEncoding = 4,
。。。 NSUnicodeStringEncoding = 10,
。。。 NSProprietaryStringEncoding = 65536};

以上节选一部分常用的,从上面的链接,可以查看苹果官方文档完整部分。

但是,你会发现没有 GB2312、GBK 等编码,这个可以通过核心基础框架来解决,在基础框架中并未提供相应的编码。

CFStringConvertEncodingToNSStringEncoding

Returns the Cocoa encoding constant that maps most closely to a given Core Foundation encoding constant.

unsigned long CFStringConvertEncodingToNSStringEncoding ( CFStringEncoding encoding);

CFStringConvertNSStringEncodingToEncoding

Returns the Core Foundation encoding constant that is the closest mapping to a given Cocoa encoding.

CFStringEncoding CFStringConvertNSStringEncodingToEncoding ( unsigned long encoding);

CFStringEncoding

An integer type for constants used to specify supported string encodings in various CFString functions.

typedef UInt32 CFStringEncoding;

External String Encodings

CFStringEncoding 常量用于可能被 CFString 支持的编码。
CFStringEncoding
 constants for encodings that may be supported by CFString.

enum {	。。。	kCFStringEncodingGB_2312_80 = 0x0630,	kCFStringEncodingGBK_95 = 0x0631,	kCFStringEncodingGB_18030_2000 = 0x0632,	。。。	kCFStringEncodingBig5 = 0x0A03,	。。。	kCFStringEncodingHZ_GB_2312 = 0x0A05,	。。。};
kCFStringEncodingGB_18030_2000 是 GB 编码的最大集合,可以使用这个,用如下方式:
NSStringEncoding gbencoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
上一篇:普及图论三题 P1807 P1113 P 4017


下一篇:Java的一些基础小知识之JVM与GC (转)