> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/ios/changelogs/version-6/v6-10-0-69865.md).

# Version 6.10.0 Changelog (March 4th, 2019)

World's #1 PDF SDK Library for Web, Mobile, Server, Desktop

* Version: 6.10.0
* Release Date: March 4th, 2019
* Built with Xcode 10.1 (10B61)

## New

* The [`PTDocumentViewController`](/ios/basic-operations/open/doc-view.md) document opening API has been expanded to support more file formats. It is now possible to open PDF, Microsoft Office, iWork (Pages, Keynote, Numbers), image, markdown, and other file formats in the document viewer. The files can be located locally or remotely and are downloaded by the viewer as necessary. For more information on the supported file formats, please see the [document conversion guide](/ios/conversion/convert-to-pdf.md).

{% tabs %}
{% tab title="Swift" %}
{% code lineNumbers="true" %}

```swift
// Open a PDF, .docx, .pptx, .xlsx, .doc, and more.
documentViewController.openDocument(with: documentURL)
```

{% endcode %}
{% endtab %}

{% tab title="Obj-C" %}
{% code lineNumbers="true" %}

```objc
// Open a PDF, .docx, .pptx, .xlsx, .doc, and more.
[documentViewController openDocumentWithURL:documentURL];
```

{% endcode %}
{% endtab %}
{% endtabs %}

* The readonly and locked permissions on annotations defined within the PDF (see [`PTAnnotFlag`](https://sdk.apryse.com/api/ios/Enums/PTAnnotFlag.html) for more information) can optionally be respected when attempting to select and edit annotations. This [option](https://sdk.apryse.com/api/ios/Classes/PTToolManager.html#/c:objc\(cs\)PTToolManager\(py\)annotationPermissionCheckEnabled) is found on the [`PTToolManager`](https://sdk.apryse.com/api/ios/Classes/PTToolManager.html) class.
* The [`PTPDFViewCtrl`](https://sdk.apryse.com/api/ios/Classes/PTPDFViewCtrl.html) class has a new [`GetThumbAsync:completion:`](https://sdk.apryse.com/api/ios/Classes/PTPDFViewCtrl.html#/c:objc\(cs\)PTPDFViewCtrl\(im\)GetThumbAsync:completion:) method for requesting page thumbnails that executes a completion block when the thumbnail is ready.
* Improved [annotation author API](https://sdk.apryse.com/api/ios/Classes/PTToolManager.html#/c:objc\(cs\)PTToolManager\(py\)annotationAuthor), now accessible on the [`PTToolManager`](https://sdk.apryse.com/api/ios/Classes/PTToolManager.html) class.
* A new PDF visual compare/diff API, available on the `PTPDFDoc` class's [`AppendVisualDiff:p2:opts:`](https://sdk.apryse.com/api/ios/Classes/PTPDFDoc.html#/c:objc\(cs\)PTPDFDoc\(im\)AppendVisualDiff:p2:opts:) method. Please see our [File comparison](/ios/compare-files/file-comparison-i.md) guide for more information and examples.

## Bug fixes

* Improved memory usage in the `PTPDFViewCtrl` and thumbnail browser (`PTThumbnailsViewController`).
* A number of miscellaneous bug fixes and improvements.

## API diff

* The signature of the [`openDocument(with:)`](https://sdk.apryse.com/api/ios/Classes/PTDocumentViewController.html#/c:objc\(cs\)PTDocumentViewController\(im\)openDocumentWithURL:) method on the `PTDocumentViewController` class has changed and no longer throws in Swift. Errors are now reported via the [`PTDocumentViewControllerDelegate`](https://sdk.apryse.com/api/ios/Protocols/PTDocumentViewControllerDelegate.html) protocol.
* Nullability specifiers have been added to the `PTPDFViewCtrl` class and the `PTPDFViewCtrlDelegate` and `PTPDFViewCtrlToolDelegate` protocols.
* The [`PTAnalyticsHandlerAdapter`](https://sdk.apryse.com/api/ios/Classes/PTAnalyticsHandlerAdapter.html#/c:objc\(cs\)PTAnalyticsHandlerAdapter\(cm\)getInstance) class has been deprecated in favor of the new [`PTAnalyticsManager`](https://sdk.apryse.com/api/ios/Classes/PTAnalyticsManager.html) API.
* The `PTLocalizedString` macro is now a \[function]\(<https://sdk.apryse.com/api/ios/Other> Functions.html#/c:@F\@PTLocalizedString) that is accessible from Swift.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/ios/changelogs/version-6/v6-10-0-69865.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
