2014-10-16 5 views

cevap

14

Kakao çerçeveleri Swift'te erişilebilir olmalıdır, ancak bunları içe aktarmanız gerekir. NSString API'sine erişmek için Foundation'u içe aktarmayı deneyin. rehber "Kakao ve Objective-C ile kullanma Swift" nin "Working with Cocoa Data Types–Strings" Gönderen:

Swift otomatik dize türü ve NSString sınıf arasındaki köprü. [...] Dize köprüleme işlemini etkinleştirmek için, yalnızca Temel'i içe aktarın. Eğer (NSStringCompareOptions seçenek türü bir parçası olarak) erişmek için Swift'in enum/opsiyon sözdizimi kullanmak zorunda

Ayrıca, NSBackwardsSearch bir enum değeri (bir option olarak ithal & işaretli) vardır. Önekler C enumeration değerlerinden sıyrılır, bu nedenle NS değerini değer adından bırakın.

hep birlikte ele alındığında, elimizde: Eğer distance and advance işlevlerini kullanmak gerekebilir

import Foundation 
"abc def ghi abc def ghi".rangeOfString("c", options:NSStringCompareOptions.BackwardsSearch) 

Not düzgün rangeOfString aralığında yararlanmak.

12

Swift 3.0:

"abc def ghi abc def ghi".range(of: "c", options: String.CompareOptions.backwards, range: nil, locale: nil) 
5

Ve eğer bir dizede geçen alt dizeyi değiştirmek isterseniz:

(Swift 3)

extension String 
{ 
    func replacingLastOccurrenceOfString(_ searchString: String, 
      with replacementString: String, 
      caseInsensitive: Bool = true) -> String 
    { 
     let options: String.CompareOptions 
     if caseInsensitive { 
      options = [.backwards, .caseInsensitive] 
     } else { 
      options = [.backwards] 
     } 

     if let range = self.range(of: searchString, 
       options: options, 
       range: nil, 
       locale: nil) { 

      return self.replacingCharacters(in: range, with: replacementString) 
     } 
     return self 
    } 
} 

Kullanımı:

let alphabet = "abc def ghi abc def ghi" 
let result = alphabet.replacingLastOccurrenceOfString("ghi", 
     with: "foo") 

print(result) 

// "abc def ghi abc def foo" 

Veya son alt dizgiyi tamamen kaldırmak ve temizlemek için , temizleyin ve temizleyin:

let result = alphabet.replacingLastOccurrenceOfString("ghi", 
      with: "").trimmingCharacters(in: .whitespaces) 

print(result) 

// "abc def ghi abc def" 
İlgili konular