2016-02-23 3 views
0

Je voudrais obtenir toutes les clés d'un CGPDFDictionaryRef. jusqu'à ce que j'ai trouvé from stackoverflowComment obtenir les clés CGPDFDictionaryRef

Voici mon code rapide:

func printPDFKeys(key: UnsafePointer<Int8>, ob: CGPDFObjectRef, info: UnsafeMutablePointer<()>) -> Void{ 

NSLog("key = %s", key); 
    //return (key, ob , info) 
    } 

Cette fonction est alors appelée comme ça.

 let myDoc = CGPDFDocumentCreateWithURL(url) 
    if myDoc != nil { 
    let myCatalog=CGPDFDocumentGetCatalog(myDoc) 

     CGPDFDictionaryApplyFunction(myCatalog, printPDFKeys, nil);//Compiler error here 
    } 

Cependant, je reçois une erreur qui

pointeur de fonction AC

ne peut être formé à partir d'une référence à une « func » ou une fermeture littérale

J'ai aussi essayé en utilisant une fermeture comme ceci:

var printPDFKeys: ( UnsafePointer<Int8>, CGPDFObjectRef, UnsafeMutablePointer<()>)-> Void 

    printPDFKeys={ 
     key,ob,info in 

    NSLog("key = %s", key); 

    } 

Je suis toujours ting la même erreur. Comment pourrais-je aller à ce sujet

+0

Salut, j'ai essayé d'utiliser votre code, mais il ne pouvait pas travailler pour moi. Voulez-vous s'il vous plaît ajouter une réponse complète ici afin qu'il sera utile aux futurs lecteurs? – Hemang

Répondre

1

la syntaxe de fermeture correcte serait:

CGPDFDictionaryApplyFunction(myCatalog, { (key, object, info) -> Void in 
// do something 
}, nil) 
+0

merci beaucoup .. cela a fonctionné – user4237435

+0

Pouvez-vous ajouter une réponse complète selon la question? – Hemang