iOS - Swift Range 范围


前言

  • 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)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM