graphicsPort doesn’t return an Optional however currentContext does, so 
cocoaCTX is an NSGraphicsContext? which is what the error message was trying to 
tell you. 

let cocoaCTX = NSGraphicsContext.currentContext()
let sysCTX = cocoaCTX?.graphicsPort as! CGContextRef?

is what you need to get an optional CGContextRef out of it (and it took me 3 
shots to get that one right). ‘?’ after the cocoaCTX (which autocomplete adds 
for you), a force downcast but to a CGContextRef? else you’ll go bang if the 
NSGraphicsContext is nil

As Marco points out, that won’t work in your initializer, quite. 

> On 2 Jul 2015, at 07:46, Rick Mann <rm...@latencyzero.com> wrote:
> 
> I think I figured this out. graphicsPort does not return an Optional type. I 
> guess the only way to know that is via Xcode's Code Completion, is that 
> right? Oh, the docs seem to show it, too (assuming it can find either).
> 
> Sorry for the noise.
> 
>> On Jul 1, 2015, at 16:28 , Rick Mann <rm...@latencyzero.com> wrote:
>> 
>> I'm trying to do this:
>> 
>> class
>> Context
>> {
>>   init()
>>       throws
>>   {
>>       let cocoaCTX = NSGraphicsContext.currentContext()
>>       guard let sysCTX = cocoaCTX.graphicsPort as! CGContextRef else { throw 
>> Errors.InvalidContext }
>>       CGContext = sysCTX;
>>   }
>> 
>>   var CGContext : CGContextRef
>> }
>> 
>> 
>> But I'm getting
>> 
>> error: value of optional type 'NSGraphicsContext?' not unwrapped; did you 
>> mean to use '!' or '?'?
>>               guard let sysCTX = cocoaCTX.graphicsPort as! CGContextRef else 
>> { throw Errors.InvalidContext }
>>                                  ^
>>                                          !
>> In the typical if-let, you don't add the ?. If I do add the ?, I get:
>> 
>> error: '_??' is not convertible to '_??'
>>               guard let sysCTX = cocoaCTX.graphicsPort? as! CGContextRef 
>> else { throw Errors.InvalidContext }
>>                                  ~~~~~~~~~~~~~~~~~~~~~^
>> 
>> Errors is an enum I created in a different file.
>> 
>> I always seem to trip up on the conditional optional unwrapping. Not sure 
>> what I'm doing wrong here. Help is much appreciated. Thanks!
>> 
>> -- 
>> Rick Mann
>> rm...@latencyzero.com
>> 
>> 
>> 
>> _______________________________________________
>> 
>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>> 
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>> 
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/cocoa-dev/rmann%40latencyzero.com
>> 
>> This email sent to rm...@latencyzero.com
> 
> 
> -- 
> Rick Mann
> rm...@latencyzero.com
> 
> 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/rols%40rols.org
> 
> This email sent to r...@rols.org


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to