Question: I'm getting crazy, cause I cannot find what are the "default" keys you would have in a PDF Document.

For example, if I want to retrieve an hyperlink from a CGPDFDocument, I do this:

```
CGPDFStringRef uriStringRef;
if(!CGPDFDictionaryGetString(aDict, "URI", &uriStringRef)) {
    break;
}

```

In this case, the key is "URI". Is there a document explaining what are the keys of a CGPDFDictionary?

Answer: 
It's absurd that you would have to go read 1300 page long specs just to find what keys a dictionary contains, a dictionary that could contain anything depending on what kind of annotation it is.

To get a list of keys in a `CGPDFDictionaryRef` you do:

```
// temporary C function to print out keys
void printPDFKeys(const char *key, CGPDFObjectRef ob, void *info) { 
    NSLog(@"key = %s", key);
}

```

In the place where you're trying to see the contents:

```
CGPDFDictionaryRef mysteriousDictionary; // this is your dictionary with keys
CGPDFDictionaryApplyFunction(mysteriousDictionary, printPDFKeys, NULL);
// break on or right after above, and you will have the list of keys NSLogged

```
The keys in a dictionary depend on the actual object the dictionary represents (a page dictionary has other keys than an annotation dictionary). The Adobe PDF reference describes all these objects and their keys.