What’s the Swift type signature on GDALOpen? My guess is that it’s
returning a UnsafePointer<Void> or UnsafeMutablePointer<Void> type. Swift
doesn’t currently handle nullability for C pointers (hence the “Unsafe”
prefix). You’ll need to check the value at the pointer’s location manually.

Dan

On Fri, Jul 1, 2016 at 2:59 AM, Rick Mann via swift-users <
swift-users@swift.org> wrote:

> I have some Swift code (in Xcode 7.3) that's calling a C function in the
> GDAL library. It's declared like this:
>
> typedef void *GDALDatasetH;
> GDALDatasetH CPL_DLL CPL_STDCALL
> GDALOpen( const char *pszFilename, GDALAccess eAccess )
> CPL_WARN_UNUSED_RESULT;
>
> I'm calling it with code like this:
>
> class
> MyClass
> {
>     func foo()
>     {
>         self.dataset = GDALOpen(path, GA_ReadOnly)
>     }
>
>     var dataset: GDALDatasetH?
> }
>
> But later code
>
>     if let ds = self.dataset
>     {
>         print("dataset: \(ds)")
>     }
>
> outputs this to the console:
>
>     dataset: 0x0000000000000000
>
> This seems very broken.
>
> --
> Rick Mann
> rm...@latencyzero.com
>
>
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to