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