​​作者:​飞舞的鸡毛​

概述

该​​NSScanner​​类是从一个抽象超类集群,它可以扫描值声明为对象的编程接口​​NSString​​对象。

一个​​NSScanner​​对象解释并转换成一个字符​​NSString​​值的对象为数量和字符串。 你指派它的扫描仪创建的字符串,并通过扫描仪的字符串的字符的进展,从开始到结束,你要求的项目。

由于集群阶级性质,扫描仪的对象不是实际情况的​​NSScanner​​子一类,但其私人。 虽然扫描仪对象的类是私有的,它的接口是公共的,因为,这种抽象宣布超​​NSScanner​​ 。 原始的方法对​​NSScanner​​是​​string​​ ,根据上市的所有方法“配置扫描器” “一节中的方法”的任务。 您创建的对象使用这个类被称为扫描对象(当没有将导致混乱,因为扫描仪只)。

您可以设置一个​​NSScanner​​对象忽略一个字符集,因为它扫描字符串使用​​setCharactersToBeSkipped:​​方法。 跳过的字符集默认是空格和换行符的字符集。

要检索的字符串未扫描的余下部分,使用​​[[scanner string] substringFromIndex: [scanner scanLocation]]​


 

类方法



localizedScannerWithString:

返回​​NSScanner​​对象,扫描一个给定的字符串根据用户的默认语言环境。


+(ID)的localizedScannerWithString:( 的NSString *)aString



参数

aString

该字符串进行扫描。



返回值

一个​​NSScanner​​扫描aString对象,根据用户的默认语言环境。



讨论

设置字符串扫描调用​​initWithString:​​与aString。 语言环境设置​​setLocale:​



可用性
  • 在Mac OS现有的X 10.0和更高版本。



宣布

​NSScanner.h​


scannerWithString:

返回​​NSScanner​​对象,扫描给定的字符串。


+(ID)的scannerWithString:( 的NSString *)aString



参数

aString

该字符串进行扫描。



返回值

一个​​NSScanner​​对象扫描aString。



讨论

设置字符串扫描调用​​initWithString:​​与aString。



实例方法



区分大小写

返回一个布尔值,指示是否接收器中的字符区分它扫描的情况。


- (布尔)区分大小写



返回值

​YES​​ ,如果接收器的区别,否则,案中的字符它扫描, ​​NO​​ 。



讨论

扫描仪默认情况下不区分大小写。 请注意,大小写不适用的字符被跳过。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– setCaseSensitive:​
  • ​– setCharactersToBeSkipped:​



宣布

​NSScanner.h​


charactersToBeSkipped

返回字符集包含的字符的接收器忽略元素时,寻找一个可扫描。


- ( NSCharacterSet *)charactersToBeSkipped



返回值

字符集包含的字符的接收器忽略元素时,寻找一个可扫描。



讨论

例如,如果一个扫描器的空间和你忽略它发送一个​​scanInt:​​消息时,它会跳过空格,直到找到一个十进制数字或其他字符。 当一个元素被扫描,但是,没有字符被跳过。 如果您扫描是什么东西令中的字符设置为跳过(例如,使用​​scanInt:​​字符集时要跳过是小数位数),其结果是不确定的。

设置默认为跳过空格和换行符的字符集。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– setCharactersToBeSkipped:​
  • ​whitespaceAndNewlineCharacterSet​​ ( ​​NSCharacterSet​​ )



宣布

​NSScanner.h​


initWithString:

返回​​NSScanner​​对象初始化扫描一个给定的字符串。


- (身份证)initWithString:( 的NSString *)aString



参数

aString

该字符串进行扫描。



返回值

一个​​NSScanner​​对象初始化扫描开始aString从。 返回的对象可能比原来的接收器不同。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​+ localizedScannerWithString:​
  • ​+ scannerWithString:​



宣布

​NSScanner.h​


isAtEnd

返回一个布尔值,指示是否接收器已用尽所有重要人物


- (布尔)isAtEnd



返回值

​YES​​ ,如果接收器已经用尽了所有重大的字符串字符,否则​​NO​​ 。

如果将字符集只跳过依然存在,返回​​YES​​ 。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– charactersToBeSkipped​



关联的例子代码
  • QTAudioContextInsert
  • QTAudioExtractionPanel



宣布

​NSScanner.h​


语言环境

返回接收器的语言环境。


- (ID)的语言环境



返回值

接收器的语言环境,或​​nil​​ ,如果没有。



讨论

扫描器的语言环境影响的方式解释从字符串的数值。 特别是,扫描仪使用的语言环境的小数分隔符来区分整数和浮点表示小数部分。 一个没有语言环境设置扫描仪使用非本地化的值。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– setLocale:​



宣布

​NSScanner.h​


scanCharactersFromSet:intoString:

扫描一样从一个特定的字符集字符的长字符串遇到,积累成一个的引用返回的字符串的字符。


- (布尔)scanCharactersFromSet:( NSCharacterSet *)scanSet intoString:( 的NSString **)StringValue的



参数

scanSet

的字符集扫描。

StringValue的

返回时,包含字符扫描。



返回值

​YES​​ ,如果接收扫描的任何字符,否则​​NO​​ 。



讨论

调用此方法​​NULL​​作为StringValue的过去简单地扫描一个给定的字符集。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– scanUpToCharactersFromSet:intoString:​



宣布

​NSScanner.h​


scanDecimal:

一扫描​​NSDecimal​​值,返回找到一个参照值。


- (布尔)scanDecimal:( NSDecimal *)decimalValue



参数

decimalValue

返回时,包含扫描的价值。 见​​NSDecimalNumber​​信息类规范更多​​NSDecimal​​值。



返回值

​YES​​ ,如果找到一个有效的接收器​​NSDecimal​​代表,否则​​NO​​ 。



讨论

调用此方法​​NULL​​作为decimalValue简单地扫描过去一​​NSDecimal​​代表性。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



关联的例子代码
  • NumberInput_IMKit_Sample



宣布

​NSDecimalNumber.h​


scanDouble:

一个double值扫描,发现返回参考价值。


- (布尔)scanDouble:(双*)doubleValue



参数

doubleValue

返回时,包含扫描的价值。 包含 ​​HUGE_VAL​​ 或 ​​–HUGE_VAL​​ 溢出,或​​0.0​​上溢。



返回值

​YES​​ ,如果找到一个有效的接收器的浮点表示,否则​​NO​​ 。



讨论

跳过过去在溢出的情况下过剩数字,因此扫描仪的立场是过去的整个浮点表示。

调用此方法​​NULL​​作为doubleValue简单地扫描过去的双值表示。 浮点数表示被假定为符合IEEE。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​doubleValue​​ ( ​​NSString​​ )



宣布

​NSScanner.h​


scanFloat:

一个浮动值扫描,发现返回参考价值。


- (布尔)scanFloat:(浮动*)floatValue



参数

floatValue

返回时,包含扫描的价值。 包含 ​​HUGE_VAL​​ 或 ​​–HUGE_VAL​​ 溢出,或​​0.0​​上溢。



返回值

​YES​​ ,如果找到一个有效的接收器的浮点表示,否则​​NO​​ 。



讨论

跳过过去在溢出的情况下过剩数字,因此扫描仪的立场是过去的整个浮点表示。

调用此方法​​NULL​​作为floatValue过去简单地扫描一个float值表示。 浮点数表示被假定为符合IEEE。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​floatValue​​ ( ​​NSString​​ )



关联的例子代码
  • iSpend
  • iSpendPlugin
  • 石英作曲QCTV



宣布

​NSScanner.h​


scanHexDouble:

为从十六进制表示的double值扫描,发现返回参考价值。


- (布尔)scanHexDouble:(双*)的结果



参数

结果

返回时,包含扫描的价值。



返回值

​YES​​ ,如果找到一个有效的接收器双点的代表性,否则​​NO​​ 。



讨论

这相当于​​%a​​或​​%A​​格式。 十六进制双重代表之前,必须​​0x​​或​​0X​​ 。

调用此方法​​NULL​​作为结果简单地扫描过去的十六进制双重代表。



可用性
  • 可在Mac OS X v10.5及更高版本。



宣布

​NSScanner.h​


scanHexFloat:

为从十六进制表示的double值扫描,发现返回参考价值。


- (布尔)scanHexFloat:(浮动*)的结果



参数

结果

返回时,包含扫描的价值。



返回值

​YES​​ ,如果找到一个有效的接收器浮点数表示,否则​​NO​​ 。



讨论

这相当于​​%a​​或​​%A​​格式。 十六进制浮点表示前面必须​​0x​​或​​0X​​ 。

调用此方法​​NULL​​作为结果简单地扫描过去的十六进制浮点表示。



可用性
  • 可在Mac OS X v10.5及更高版本。



宣布

​NSScanner.h​


scanHexInt:

为从一个十六进制表示的无符号值扫描,发现返回参考价值。


- (布尔)scanHexInt:(无符号*)intValue



参数

intValue

返回时,包含扫描的价值。 包含 ​​INT_MAX​​ 或 ​​INT_MIN​​ 溢出。



返回值

返回​​YES​​ ,如果接收器发现一个有效的十六进制整数表示,否则​​NO​​ 。



讨论

十六进制整数表示可以选择的前面​​0x​​或​​0X​​ 。 跳过过去在溢出的情况下过剩的数字,所以接收机的位置是过去的整个十六进制表示。

调用此方法​​NULL​​作为intValue简单地扫描过去的十六进制整数表示。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



宣布

​NSScanner.h​


scanHexLongLong:

为从十六进制表示的double值扫描,发现返回参考价值。


- (布尔)scanHexLongLong:(无符号长的长*)的结果



参数

结果

返回时,包含扫描的价值。



返回值

​YES​​ ,如果找到一个有效的接收器双点的代表性,否则​​NO​​ 。



讨论

调用此方法​​NULL​​作为结果简单地扫描过去的很长很长的十六进制表示形式。



可用性
  • 可在Mac OS X v10.5及更高版本。



宣布

​NSScanner.h​


scanInt:

为从一个十进制表示的int值扫描,发现返回参考价值。


- (布尔)scanInt:(智力*)intValue



参数

intValue

返回时,包含扫描的价值。 包含 ​​INT_MAX​​ 或 ​​INT_MIN​​ 溢出。



返回值

​YES​​ ,如果接收器发现一个有效的小数的整数表示,否则​​NO​​ 。



讨论

跳过过去在溢出的情况下过剩的数字,所以接收机的位置是过去的整个十进制表示。

调用此方法​​NULL​​作为intValue过去简单地扫描一个十进制整数表示。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​intValue​​ ( ​​NSString​​ )
  • ​– scanInteger:​



宣布

​NSScanner.h​


scanInteger:

扫描一 NSInteger 值从十进制表示,他返回找到的参考价值


- (布尔)scanInteger:( NSInteger *) 



参数

返回时,包含扫描的价值。



返回值

​YES​​ ,如果接收器发现一个有效的整数表示,否则​​NO​​ 。



讨论

跳过过去在溢出的情况下过剩的数字,所以接收机的位置是过去整个的整数表示。

调用此方法​​NULL​​的简单地扫描过去一个十进制整数表示。



可用性
  • 可在Mac OS X v10.5及更高版本。



参见
  • ​integerValue​​ ( ​​NSString​​ )
  • ​– scanInt:​



宣布

​NSScanner.h​


scanLocation

返回字符位置,接收器将开始其下一次扫描操作。


- ( NSUInteger )scanLocation



返回值

字符位置上,接收器将开始其下一次扫描操作。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– setScanLocation:​



宣布

​NSScanner.h​


scanLongLong:

从一个相当长的十进制表示的long值扫描,发现返回参考价值。


- (布尔)scanLongLong:(长*长)longLongValue



参数

longLongValue

返回时,包含扫描的价值。 包含 ​​LLONG_MAX​​ 或 ​​LLONG_MIN​​ 溢出。



返回值

​YES​​ ,如果接收器发现一个有效的小数的整数表示,否则​​NO​​ 。



讨论

所有溢出位被跳过。 跳过过去在溢出的情况下过剩的数字,所以接收机的位置是过去的整个十进制表示。

调用此方法​​NULL​​作为longLongValue简单地扫描过去很长的十进制整数表示。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



宣布

​NSScanner.h​


scanString:intoString:

扫描一个给定的字符串,返回按引用的等效字符串对象,如果找到一个匹配。


- (布尔)scanString:( 的NSString *) 字符串 intoString:( 的NSString **)StringValue的



参数

该字符串来扫描当前扫描的位置。

StringValue的

返回时,如果接收到的位置的字符串包含一个等效的字符串在当前扫描,包含一个字符串相当于字符串 。



返回值

​YES​​ ,如果StringValue的扫描位置相匹配的字符时,否则​​NO​​ 。



讨论

如果 string是存在于当前扫描的位置,那么当前的位置是先进的扫描后的字符串,否则扫描的位置不改变。

调用此方法​​NULL​​作为StringValue的过去简单地扫描一个给定的字符串。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– scanUpToString:intoString:​



宣布

​NSScanner.h​


scanUpToCharactersFromSet:intoString:

扫描,直到从一个给定字符串的字符集遇到,积累成一个的通过引用返回字符串的字符。


- (布尔)scanUpToCharactersFromSet:( NSCharacterSet *)stopSet intoString:( 的NSString **)StringValue的



参数

stopSet

最多的字符设置来扫描。

StringValue的

返回时,包含字符扫描。



返回值

​YES​​ ,如果接收扫描的任何字符,否则​​NO​​ 。

如果仅在扫描字符​​charactersToBeSkipped​​字符集(这是空白和换行符默认设置),然后返回​​NO​​ 。



讨论

调用此方法​​NULL​​作为StringValue的简单扫描到一个给定的字符集。

如果没有字符的字符串stopSet目前在扫描仪的来源,字符串的其余部分的来源是StringValue的投入,接收机的​​scanLocation​​前进到字符串结束的来源,并且该方法返回​​YES​​ 。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– scanCharactersFromSet:intoString:​



宣布

​NSScanner.h​


scanUpToString:intoString:

扫描字符串,直到遇到一个给定的字符串,积累成一个的引用返回的字符串的字符。


- (布尔)scanUpToString:( 的NSString *)stopString intoString:( 的NSString **)StringValue的



参数

stopString

该字符串扫描到。

StringValue的

返回时,包含任何字符被扫描。



返回值

​YES​​ ,如果接收器扫描任何字符,否则​​NO​​ 。

如果仅在扫描字符​​charactersToBeSkipped​​字符集(默认是空格和换行字符集),则此方法返回​​NO​​ 。



讨论

如果​​stopString​​是存在于接收,位置,然后在返回的扫描设置为字符串开头的。

如果​​stopString​​接收器是第一个字符串中,然后该方法将返回​​NO​​和StringValue的是没有改变。

如果搜索字符串( ​​stopString​​ )不是字符串中扫描仪的来源,字符串的其余部分的来源是StringValue的投入,接收机的​​scanLocation​​前进到字符串结束的来源,并且该方法返回​​YES​​ 。

调用此方法​​NULL​​作为StringValue的简单扫描到一个给定的字符串。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– scanString:intoString:​



宣布

​NSScanner.h​


setCaseSensitive:

设置是否接收器是大小写敏感,扫描字符。


- (空)setCaseSensitive:(布尔) 标记



参数

国旗

如果​​YES​​ ,接收器将区分情况时,扫描字符,否则会忽略大小写的区别。



讨论

扫描仪默认情况下不区分大小写。 请注意,大小写不适用的字符被跳过。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– caseSensitive​
  • ​– setCharactersToBeSkipped:​



宣布

​NSScanner.h​


setCharactersToBeSkipped:

设置的字符集时忽略扫描的值表示。


- (空)setCharactersToBeSkipped:( NSCharacterSet *)skipSet



参数

skipSet

时忽略的字符表示一个值扫描。 通​​nil​​不忽视任何字符。



讨论

例如,如果一个扫描器的空间和你忽略它发送一个​​scanInt:​​消息时,它会跳过空格,直到找到一个十进制数字或其他字符。 当一个元素被扫描,但是,没有字符被跳过。 如果您扫描是什么东西令中的字符设置为跳过(例如,使用​​scanInt:​​字符集时要跳过是小数位数),其结果是不确定的。

要跳过的字符被视为直译为单个值。 扫描器并不适用于它的大小写设置这些字符,不尝试匹配的字符可以套任何字符序列组成跳过(尽管它比赛前,单独组成的字符)。 如果你想跳过所有的元音,而扫描字符串,例如,可以设置要跳过的字符在字符串“AEIOUaeiou”这些(加上任何预先重音字符组成的变体)。

跳过的字符集默认是空格和换行符的字符集。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– charactersToBeSkipped​
  • ​whitespaceAndNewlineCharacterSet​​ ( ​​NSCharacterSet​​ )



关联的例子代码
  • 的ImageMap
  • ImageMapExample
  • QTAudioContextInsert
  • QTAudioExtractionPanel
  • 石英作曲QCTV



宣布

​NSScanner.h​


那么setlocale:

设置接收机的区域设置特定的语言环境。


- (空)那么setlocale:(编号)aLocale



参数

aLocale

为接收器的语言环境。



讨论

扫描器的语言环境影响的方式解释该字符串值。 特别是,扫描仪使用的语言环境的小数分隔符来区分整数和浮点表示小数部分。 一个新的扫描器的语言环境是默认​​nil​​ ,这导致它使用非本地化的值。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– locale​



宣布

​NSScanner.h​


setScanLocation:

设置位置的下一次扫描操作将开始一个给定的索引。


- (空)setScanLocation:( NSUInteger ) 指数



参数

指数

该位置的下一次扫描操作将开始。 提出了一个​​NSRangeException​​如果指数为超出字符串结束扫描。



讨论

这种方法是备份到错误后重新扫描有用。

而不是设置扫描位置直接跳过已知序列的字符,使用​​scanString:intoString:​​或​​scanCharactersFromSet:intoString:​​允许您验证预期的子(或字符集),目前是事实。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– scanLocation​



宣布

​NSScanner.h​


返回与该接收器的创建或初始化字符串。


- ( 的NSString *)字符串



返回值

与该接收器的创建或初始化字符串。



可用性
  • 在Mac OS现有的X 10.0和更高版本。



参见
  • ​– locale​



宣布

​NSScanner.h​