Re: UIKit and Swift
Re: UIKit and Swift
- Subject: Re: UIKit and Swift
- From: Jim Geist <email@hidden>
- Date: Wed, 11 Jun 2014 07:29:05 -0700
On Jun 10, 2014, at 11:50 PM, Roland King <email@hidden> wrote:
>
> On 11 Jun, 2014, at 2:12 pm, Kyle Sluder <email@hidden> wrote:
>
>>> On Jun 10, 2014, at 10:57 PM, Jim Geist <email@hidden> 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 (email@hidden)
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:
This email sent to email@hidden