On Jun 10, 2014, at 11:50 PM, Roland King <r...@rols.org> wrote:

> 
> On 11 Jun, 2014, at 2:12 pm, Kyle Sluder <k...@ksluder.com> wrote:
> 
>>> On Jun 10, 2014, at 10:57 PM, Jim Geist <velocity...@rodentia.net> wrote:
>>> 
>>> Anyone know off the top of their head how to import an Obj-C extension into 
>>> Swift? Specifically, I need the NSString extensions from UIKit.
>> 
>> `import UIKit` doesn’t work? Of course, that will only work on platforms 
>> where UIKit exists (iOS device/simulator), so you can’t expect it to work in 
>> a REPL or Playground.
>> 
>> --Kyle Sluder
>> 
> 
> Works fine in an iOS playground. import UIKit imports UIKit and the 
> extensions too. This code doesn't actually DO anything but it compiles and 
> runs
> 
> import UIKit
> 
> var t:NSString = "bcd"
> 
> t.sizeWithAttributes([:])
> t.drawAtPoint( CGPoint( x:100,y:200 ), withAttributes: [:] )
> 
> 
> I have no idea what to put in the attributes parameter to have attributes, 
> must be an enum or something but I have no idea what it is and the 
> documentation isn't being helpful


Ah ok, figured it out; your code gave me a hint. If you have a String, the 
methods that are in NSString just work on it. If you want the extensions, you 
have to be explicit about NSString:

drawable.name is a String?:


                // does not work, sizeWithFont not found
                if let name = drawable.name {
                    var size = name.sizeWithFont(font)
                    // etc...
                }

                // works fine
                if let name: NSString = drawable.name {
                    var size = name.sizeWithFont(font)
                    // etc...
                }

(Yes, sizeWithFont is deprecated, I still need to switch it out with 
sizeWithAttributes)

Thanks!!

_______________________________________________

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