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