Conversion pointeur [Résolu]

devulderdevulder Membre
septembre 2021 modifié dans Objective-C, Swift, C, C++ #1

Bonjour,

Je voudrais convertir un pointeur mémoire d'un object quelconque dans une variable de type int

Du style :

let c = NSObject()

var e:Int = c /// ***** code a trouvé :)) ******

Une piste ?

Merci

Réponses

  • CéroceCéroce Membre, Modérateur

    Regarde Unsafe(Mutable)Pointer et compagnie.

  • @Céroce a dit :
    Regarde Unsafe(Mutable)Pointer et compagnie.

    Ca roule, merci!

  • devulderdevulder Membre
    septembre 2021 modifié #4

    Voila le code qui marche impec!`

        var monobject = NSObject()
    
        print("ptr reel", monobject)
    
        var p1 = UnsafeMutablePointer<NSObject>.allocate(capacity: 1)
    
        p1.initialize(to: monobject)
    
        print("ptr obj",p1.pointee)
    

    `

  • @devulder a dit :
    Voila le code qui marche impec!`

        var monobject = NSObject()
    
        print("ptr reel", monobject)
    
        var p1 = UnsafeMutablePointer<NSObject>.allocate(capacity: 1)
    
        p1.initialize(to: monobject)
        
        print("ptr obj",p1.pointee)
    

    `

    Oula non. Non, vraiment non. Ça va leaker dans tous les sens et tu vas mettre des heures à comprendre d'où ça vient quand tu t'inquiètera des perfs de l'application, 4 mois après avoir écrit le code... On fait tous ça.

    Y'a des fonctions pour ça :

    Avec ça ton code tu vas plutôt l'écrire de la sorte :

    var object = NSObject()
    print("ptr reel", object)
    
    withUnsafePointer(to: object) { p1 in
        print("ptr obj", p1.pointee)
    }
    
  • @Pyroh a dit :

    @devulder a dit :
    Voila le code qui marche impec!`

        var monobject = NSObject()
    
        print("ptr reel", monobject)
    
        var p1 = UnsafeMutablePointer<NSObject>.allocate(capacity: 1)
    
        p1.initialize(to: monobject)
        
        print("ptr obj",p1.pointee)
    

    `

    Oula non. Non, vraiment non. Ça va leaker dans tous les sens et tu vas mettre des heures à comprendre d'où ça vient quand tu t'inquiètera des perfs de l'application, 4 mois après avoir écrit le code... On fait tous ça.

    Y'a des fonctions pour ça :

    Avec ça ton code tu vas plutôt l'écrire de la sorte :

    var object = NSObject()
    print("ptr reel", object)
    
    withUnsafePointer(to: object) { p1 in
        print("ptr obj", p1.pointee)
    }
    

    Merci, je prends note :)

Connectez-vous ou Inscrivez-vous pour répondre.