es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Controlador de documentos buscando el manejo de URLs no relacionadas con archivos.

¿Documentos globales con un esquema de URL personalizado?

Tengo la necesidad de almacenar en caché información a través de una URL, con un esquema personalizado – no file:; para permitir el acceso del usuario y, de lo contrario, tratar esas URL como globales para que cualquier acceso a través de su URL vea los mismos datos. Es simplemente una forma elegante de acceder a las preferencias del usuario.

Estoy confiando en el método document(url:) de un controlador de documentos para encontrar dicha URL si su documento existe, previamente abierto.

¡Y aún así no funciona!

Tenga esto en cuenta en el método didFinishLaunching de la aplicación:


do {
let ibm = URL.init(string: "https://www.ibm.com")!
let doc = try docController.makeDocument(withContentsOf: ibm, ofType: "myType")
assert((doc == docController.document(for: ibm)), "¿El documento creado no se encuentra?")
} catch let error {
NSApp.presentError(error)
}

¡La aserción se activa!

Así que me detengo y trato de averiguar qué estoy haciendo mal.

Básicamente estoy tratando de admitir información que no es de archivo, en un espacio de nombres plano, para proporcionar un acceso y contenido consistentes.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    ¿Documentos globales con un esquema de URL personalizado?

    Para permitir un acceso y contenido consistentes, un experto en TI especializado en documentos, swift5 y nsdocumentcontroller tiene la necesidad de almacenar información en caché a través de una URL, con un esquema personalizado – no file:; para permitir el acceso del usuario. El objetivo es tratar estas URL como globales, de modo que cualquier acceso a través de su URL vea los mismos datos.

    El experto confía en la función document(url:) del controlador de documentos para buscar la URL si existe su documento, el cual fue previamente abierto. Sin embargo, al probar esto en la función didFinishLaunchingWithOptions de la aplicación, el documento creado no se encuentra.

    El problema radica en que la función document(url:) solo devuelve un documento para una URL de archivo. Por lo tanto, para admitir información no relacionada con archivos en un espacio de nombres plano, es necesario utilizar una clase de documento personalizada que sobrescriba la función read(from:) para cargar los datos desde una fuente global, como las preferencias del usuario. La propiedad fileURL del documento se puede establecer en una URL de archivo estándar para cumplir con la arquitectura del documento.

    Al crear una clase de documento personalizada y establecer su URL de archivo en una URL de archivo estándar, se puede encontrar el documento utilizando la función document(url:) y se puede lograr un acceso global coherente para almacenar información en caché a través de una URL.

Comments are closed.