I've now found an acceptable solution. Rather than a property I've added an optional method to the protocol which then in its implementation assigns using the property, pretty much to make sure that the function/block is copied. I declared the method like so:
-(void)applyMyCreateImageFunction:(CGImageRef (^)(NSDictionary *))createImageFunction And when calling it from the swift code I call it like so: imageProvider.applyMyCreateImageFunction?(makeImage) The question mark was necessary to evaluate whether the optional protocol method had been implemented or not. Kevin On 18 Oct 2014, at 18:18, Kevin Meaney <k...@yvs.eu.com> wrote: > Hi Roland, > > Thanks for the followup. I've created a proper git rep on github rather than > just a gist. Most of my github reps seem to be this kind of mini > demonstration project and I was trying to avoid yet another one. > > https://github.com/SheffieldKevin/swift-objectivec > >> What version of Xcode are you using by the way, Swift is so flux-y at the >> moment it probably makes a difference. > > I'm now running release Yosemite and release Xcode 6.1. That appears to me to > make no difference. > > I still can't assign to the optional property of my protocol. > > You can ignore the ImageProvider2 class, I've just included it for > completeness. It doesn't have a protocol and just declares the property > itself. > > So with my protocol I've done something similar to what you did if I've > interpreted your discussion correctly. I've got two properties, one that is > required and one that is optional. > > Everything works fine for the required property. But I still can't get the > optional one to work. > > In ImageProvider.m you'll see that the MakeImageProvider function assigns a > block to the optional property and in SupplyCreateImage.swift I've commented > out the assignment. I've provided the example this way so that it can be seen > that it works when done using objective-c. But if you comment out the > assignment to the optional property of the block, and uncomment the line in > the swift file you'll see that the command line tool no longer compiles. > > Like you I've tried the use of the optional and playing around with casting > but I've not actually got the code to compile this way. > > Kevin > > > _______________________________________________ > > 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/ktam%40yvs.eu.com > > This email sent to k...@yvs.eu.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/archive%40mail-archive.com This email sent to arch...@mail-archive.com