zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    ES6 => 箭头函数
    从零开始, 探索transition(vue-2.0)
    从零开始,零基础,一点一点探索vue-router(vue2.0)
    解决Vue请求 ‘No 'Access-Control-Allow-Origin' header is present on the requested resource’错误
    超详细,用canvas在微信小程序上画时钟教程
    钱兔
    天天飞燕
    小鱼
    键盘处理
    兼容iOS 10 资料整理笔记
  • 原文地址:https://www.cnblogs.com/1023843587qq/p/4782345.html
Copyright © 2011-2022 走看看