2017-01-06 3 views
1

Я работаю над приложением cordova и пытаюсь преобразовать быстрый код, который он сгенерировал, в синтаксис swift 3, потому что он создает ошибки, когда я пытаюсь его построить. У меня эту функциюЗначение типа 'URL' не имеет имени 'URLByAppendingPathComponent'

init(configuration: WebAppConfiguration, versionsDirectoryURL: URL, initialAssetBundle: AssetBundle) { 
    self.configuration = configuration 
    self.versionsDirectoryURL = versionsDirectoryURL 
    self.initialAssetBundle = initialAssetBundle 

    downloadDirectoryURL = versionsDirectoryURL.appendingPathComponent("Downloading") 

    queue = DispatchQueue(label: "com.meteor.webapp.AssetBundleManager", attributes: []) 

    downloadedAssetBundlesByVersion = [String: AssetBundle]() 
    loadDownloadedAssetBundles() 

    let operationQueue = OperationQueue() 
    operationQueue.maxConcurrentOperationCount = 1 
    operationQueue.underlyingQueue = queue 

    // We use a separate to download the manifest, so we can use caching 
    // (which we disable for the session we use to download the other files 
    // in AssetBundleDownloader) 
    session = URLSession(configuration: URLSessionConfiguration.default, delegate: nil, delegateQueue: operationQueue) 
} 

Line 6

downloadDirectoryURL = versionsDirectoryURL.appendingPathComponent("Downloading") 

бросает ошибку

Значение 'URL' тип не имеет ни одного члена 'URLByAppendingPathComponent'

, и я не понять, что вызывает эту ошибку, я просмотрел оперативную документацию 3, а также другие ответы в Интернете, но предполагается, что линия быть безошибочным, пожалуйста, любое понимание решения этой ошибки было бы весьма признателен

ответ

1

Я думаю, что это appendPathComponent не appendingPathComponent, просто перепечатать это предложит вам правильный синтаксис

+0

Это не сработало, в нем говорится: «Нельзя использовать мутирующий элемент по неизменяемому значению:« versionDirectoryURL »является константой« let ». Даже после того, как я изменил let на var, эта ошибка все еще сохраняется – Adim

+0

, она будет работать, если вы измените на var, попробуйте перестроить свой проект, вы должны добавить что-то вроде 'var versionsDirectoryURL = versionsDirectoryURL', поскольку это функция param – Tj3n

+0

@ Tj3n Это [' appendingPathComponent'] (https://developer.apple.com/reference/foundation/url/1780239-appendingpathcomponent), а 'appendPathComponent' добавит pathComponent к себе, но OP использует результат. –

0

Там есть метод «appendingPathComponent» для типа ' URL»

Убедитесь, что вы не сделали ошибку, которую я сделал вызова метода для переменной типа [URL]

let documentURL = FileManager.default.urls(for: .documentDirectory, in: 
.userDomainMask) 
     let fileURL = 
documentURL.appendingPathComponent("tempImage.jpg") 

фиксируется, убедившись, что это переменная типа URL

let documentURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! 
let fileURL = documentURL.appendingPathComponent("tempImage.jpg") 
Смежные вопросы