[RESOLU][Swift]Charger un fichier rtf dans un NSMutableAttributedString

DrakenDraken Membre
avril 2015 modifié dans API UIKit #1

J'ai écris un mini-programme pour charger un fichier RTF et l'afficher avec un label.  J'obtiens systématiquement le même message d'erreur à  la compilation. Je dois oublier un truc, mais quoi ?


 


override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

var error:NSError

let urlFichier = NSBundle.mainBundle().URLForResource("Fichier", withExtension: "rtf")


ERREUR ICI ==> var monRTF = NSMutableAttributedString(fileURL: urlFichier,
options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType],
documentAttributes: nil,
error: &error)

}


Mots clés:

Réponses

  • CéroceCéroce Membre, Modérateur
    mars 2015 modifié #2

    Y'a des pointeurs de NSError en Swift ? (peut-être, j'y connais rien, mais je doute).


  • Le code vient de Stack Overflow à  l'origine. Après avoir lu ta remarque, j'ai ajouté un NSErrorPointeur, et ça compile maintenant : 



    var error:NSErrorPointer = NSErrorPointer()

    let urlFichier = NSBundle.mainBundle().URLForResource("Fichier", withExtension: "rtf")

    var monRTF = NSMutableAttributedString(fileURL: urlFichier,
    options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType],
    documentAttributes: nil,
    error: error)


    Ceci dis, je n'arrive toujours pas à  récupérer le contenu du fichier RTF !

  • samirsamir Membre
    mars 2015 modifié #4

    La signature de la méthode t'indique ton erreur. Il faut utiliser un paramètre 'In-Out' pour que la fonction puisse le modifier. 



    , inout error:error)

  • Joanna CarterJoanna Carter Membre, Modérateur
    J'écris sur mon iPad mais Si je ne me trompe pas, cet init renvoie un tuple avec l'erreur là  dedans
  • Comme je le disais plus haut, ça compile correctement avec un NSErrorPointer.

  • DrakenDraken Membre
    mars 2015 modifié #7

    Bon, ça marche .. J'avais oublié de connecter mon label de test sur la view principale !


    Merci pour votre aide.

  • Version actualisée pour Xcode 7.3 :



    let url = NSBundle.mainBundle().URLForResource("texte", withExtension: "rtf")
    if let url = url {
    let rtf = try? NSAttributedString(URL: url,
    options: [NSDocumentTypeDocumentAttribute: NSRTFTextDocumentType],
    documentAttributes: nil)
    }
Connectez-vous ou Inscrivez-vous pour répondre.