zoukankan      html  css  js  c++  java
  • iOS

    前言

    • Range:结构体,这个结构体用来表示一个区间的范围。

      	public struct Range<Element : ForwardIndexType> : Equatable, CollectionType, CustomStringConvertible, CustomDebugStringConvertible
      
    • NSRange:结构体,这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围。

      	public typealias NSRange = _NSRange
      
      	public struct _NSRange {
      		public var location: Int
      		public var length: Int
      		public init()
      		public init(location: Int, length: Int)
      	}
      
      	extension NSRange {
      		public init(_ x: Range<Int>)
      		@warn_unused_result
      		public func toRange() -> Range<Int>?
      	}
      

    1、Range 结构体变量的创建与调用

    	// Range 结构体变量的创建与赋值
    	
    		let str = "hello world"
    	
    		// 1..<9
    		let range1:Range = Range(1...8)
    	    
    		// 2..<5
    		var range2:Range = Range(2..<5)
    	    
    		// 3..<7
    		let range3:Range = str.startIndex.advancedBy(3)...str.startIndex.advancedBy(6)
        
    	// Range 值的修改
    
    		range2.startIndex = 3
    		range2.endIndex = 6
            
    	// Range 值的判断
    	
    		let bl:Bool = range2.isEmpty
    

    2、NSRange 结构体变量的创建与调用

    	// NSRange 结构体变量的创建与赋值
    	        
    		// 先定义变量,再赋值
    		var nsRange1:NSRange = NSRange()
    		nsRange1.location = 6;
    		nsRange1.length = 1;
    	        
    		// 定义时直接赋值
    		let nsRange2:NSRange = NSRange(location: 7, length: 2)
    	        
    		// 由区间值创建
    		let nsRange3:NSRange = NSRange(2...9)
    	        
    		// 由方法创建
    		let nsRange4:NSRange = NSMakeRange(1, 8)
            
    	// NSRange 结构体变量值的调用
            
    		print("(nsRange1.location), (nsRange1.length)")
    

    3、NSRange 与 Range 的相互转换

    	// Range 转 NSRange
    	let nsRange:NSRange = NSRange(1...10)
      	
    	// NSRange 转 Range
    	let range:Range? = nsRange.toRange()
    

    4、NSRange 与 String 的相互转换

    	let nsRange1 = NSRange(location: 7, length: 2)
        
    	// NSRange 转 String
    	let string:String = NSStringFromRange(nsRange1)
        	
    	// String 转 NSRange
    	let nsRange:NSRange = NSRangeFromString(string)
    
  • 相关阅读:
    委托的BeginInvoke和EndInvoke
    HTTP Post
    显示一个托盘
    sql语句
    在C++ 中 如何调用 C# 写的DLL(转载)
    WinForm-MenuStrip
    rsync定时同步和rsync+sersync实时同步
    innobackupex自动备份数据库脚本
    innobackupex备份恢复mysql
    gitlab安装和基本使用
  • 原文地址:https://www.cnblogs.com/QianChia/p/5777398.html
Copyright © 2011-2022 走看看