Значение ошибки типа 'String' не имеет члена 'URLbyAppending' с моей функцией записи

Я получаю сообщение об ошибке с моей функцией записи звука ... в нем говорится: "Значение типа" String "не имеет члена" URLbyAppending ""

    func startRecording() {
        let audioFilename = getDocumentsDirectory().URLbyAppending("recording.m4a")
        let audioURL = NSURL(fileURLWithPath: audioFilename)

        let settings = [
            AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
            AVSampleRateKey: 12000.0,
            AVNumberOfChannelsKey: 1 as NSNumber,
            AVEncoderAudioQualityKey: AVAudioQuality.High.rawValue
        ]

Это очень раздражает, потому что раньше с моим Xcode 6 он работал отлично ...

Мне нужна помощь, пожалуйста ... Спасибо

РЕДАКТИРОВАТЬ

Вот моя функция getDocumentsDirectory

    func getDocumentsDirectory() -> String {
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    let documentsDirectory = paths[0]
    return documentsDirectory

person Moussdog    schedule 14.11.2015    source источник
comment
Что возвращает getDocumentsDirectory () - строку или URL-адрес? Возможно, вы имеете в виду stringByAppendingPathComponent. Кроме того, по соглашению методы не имеют префикса get, если только они не возвращают значения через параметр ссылки.   -  person zaph    schedule 14.11.2015


Ответы (1)


Ваша getDocumentsDirectory функция, которую вы должны были включить, по-видимому, возвращает строку, а не URL-адрес. Исправьте это с помощью stringByAppendingPathComponent.

В качестве альтернативы вы можете изменить свою getDocumentsDirectory функцию, чтобы она возвращала URL-адрес напрямую и изменила свой вызов на:

func getDocumentsDirectory() throws -> NSURL {
    return try NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
}

let audioUrl = try getDocumentsDirectory().URLByAppendingPathComponent("recording.m4a")

Обратите внимание, что, поскольку getDocumentsDirectory может генерировать (URLForDirectory может генерировать), getDocumentsDirectory необходимо вызывать с помощью try.

person David Berry    schedule 14.11.2015
comment
Наверное, нет: stringByAppendingPathElement, такого способа нет. Возможно: stringByAppendingPathComponent. - person zaph; 14.11.2015
comment
Да, я перепроверил это и исправил, прежде чем увидел ваш комментарий;). Что я получаю, отвечая с iPad. - person David Berry; 14.11.2015
comment
Как мне вернуться к URL-адресу? изменив мою функцию getDocumentsDirectory? - person Moussdog; 14.11.2015
comment
Если бы вы это сделали, то вам не понадобился бы конструктор NSURL ниже, и ваши переменные были бы неправильно названы :) - person David Berry; 14.11.2015