NSScanner类

2018-08-02  本文已影响18人  边河

NSScanner类

最近做项目,遇到了这个类,所以找了资料看了看,以后再加例子。
一、属性


@property (readonly, copy) NSString *string;
@property NSUInteger scanLocation;
@property (nullable, copy) NSCharacterSet *charactersToBeSkipped;
@property BOOL caseSensitive;
@property (nullable, retain) id locale;

NSScanner对象把NSString 对象的的字符解释和转化成 number和string 类型的值。在创建NSScanner对象的时候为它分配字符(string ),当你从NSScanner对象获取内容的时候,它会从头到尾遍历字符串(string)。

在 NSScanner 对象扫描字符串的时候,你可以通过设置属性charactersToBeSkipped忽略某些字符。在扫描字符串之前,那些位于忽略字符集中的字符将会被跳过。默认的忽略字符是空格和回车字符。
可以通过[[scanner string] substringFromIndex:[scanner scanLocation]]获取未扫描的字符串。

二、方法

创建方法

- (instancetype)initWithString:(NSString *)string NS_DESIGNATED_INITIALIZER;
+ (instancetype)scannerWithString:(NSString *)string;
+ (id)localizedScannerWithString:(NSString *)string;

扫描方法

- (BOOL)scanInt:(nullable int *)result;
- (BOOL)scanInteger:(nullable NSInteger *)result;
- (BOOL)scanLongLong:(nullable long long *)result;
- (BOOL)scanUnsignedLongLong:(nullable unsigned long long *)result;
- (BOOL)scanFloat:(nullable float *)result;
- (BOOL)scanDouble:(nullable double *)result;
- (BOOL)scanHexInt:(nullable unsigned *)result;
- (BOOL)scanHexLongLong:(nullable unsigned long long *)result;  
- (BOOL)scanHexFloat:(nullable float *)result;                 
- (BOOL)scanHexDouble:(nullable double *)result;             

- (BOOL)scanString:(NSString *)string intoString:(NSString * _Nullable * _Nullable)result;
- (BOOL)scanCharactersFromSet:(NSCharacterSet *)set intoString:(NSString * _Nullable * _Nullable)result;
- (BOOL)scanUpToString:(NSString *)string intoString:(NSString * _Nullable * _Nullable)result;
- (BOOL)scanUpToCharactersFromSet:(NSCharacterSet *)set intoString:(NSString * _Nullable * _Nullable)result;

注意: scanner方法开始扫描,比如scanInt,scanDouble,如果你想扫描多变,通常需要使用while循环。

参考:https://blog.csdn.net/u010545480/article/details/56286369
https://developer.apple.com/documentation/foundation/nsdecimalnumber?language=objc

上一篇 下一篇

猜你喜欢

热点阅读