2016-09-20 1 views
4

В настоящее время я конвертирую свои коды в swift 3, и я сталкиваюсь с вышеупомянутой ошибкой со следующими кодами.Swift 3 conversion: значение типа 'characterset' не имеет символа участникаIsMember '

func containsAlphabets() -> Bool { 
    //Checks if all the characters inside the string are alphabets 
    let set = NSCharacterSet.letters 
    return self.utf16.contains({ return set.characterIsMember($0) }) 
} 

Любые души могут помочь в этом?

+0

try 'return self.utf16.contains (где: {(CharacterSet.letters as NSCharacterSet) .characterIsMember ($ 0)})' –

+1

Эй, это сработало! @LeoDabus СПАСИБО! – LuidonVon

+3

Добро пожаловать. Если вы хотите, чтобы я опубликовал его в качестве ответа, пожалуйста, дайте мне знать. Кстати, я заметил, что вы не принимаете ни одного ответа на все вопросы, которые вы уже сделали здесь в SO. Вы должны взглянуть на http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

ответ

2

можно сделать следующим образом:

extension String { 
    var containsAlphabets: Bool { 
     return utf16.contains { (CharacterSet.letters as NSCharacterSet).characterIsMember($0) } 
    } 
} 
6

В Swift 3 CharacterSet повторно предназначены для работы с точкой UnicodeScalar, а не UTF-8 кодом.

В этом случае, вы можете написать что-то вроде этого:

var containsAlphabets: Bool { 
    //Checks if any of the characters inside the string are alphabets 
    return self.unicodeScalars.contains {CharacterSet.letters.contains($0)} 
} 

Пожалуйста, попробуйте.

Смежные вопросы