How to set CMutablePointer to false in S

2020-06-10 06:32发布

Basically I'm using the AssetsLibrary frameworks in Swift, how could I modify the value of the stop pointer to NO/False/0 (I don't even know what value it should except) ?

self.library.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos), usingBlock: {(group: ALAssetsGroup!, stop: CMutablePointer<ObjCBool>) in

},
failureBlock: {(error: NSError!) in

})

I should be able to access the value and modify it with unsafePointer but I can't seems to be able to write the closure correctly.

标签: ios swift
2条回答
来,给爷笑一个
2楼-- · 2020-06-10 06:55

As of Xcode 6 beta 4, you can now do:

stop.memory = true

Or, as holex noted, you can:

stop.initialize(true)
查看更多
家丑人穷心不美
3楼-- · 2020-06-10 07:10

This is the equivalent of *stop = YES;:

stop.withUnsafePointer { $0.memory = true }

To make it more succinct, you could do things like:

operator infix <- {}

@infix func <- <T>(ptr: CMutablePointer<T>, value: T) {
    ptr.withUnsafePointer { $0.memory = value }
}

and then the line above becomes simply this:

stop <- true

Not sure if that's recommended style, though...

(You can choose characters from / = - + * % < > ! & | ^ . ~ to create custom operators.)

查看更多
登录 后发表回答