简体   繁体   中英

Import my own Swift class into Playground

I have seen several different posts on this subject, but none seem to solve what I think is a basic problem. In my project I have the following:

Hi Class I have a Hi Class with a since method shown below

func sayHi(){
    println("hi")

}

Playground I have a playground where I try to import my Hi Class.

The problem: My playground cannot see/import the Hi class. I know my Hi class is working as I can call it from a view controller without a problem.

Here the response from stack/apple forums that seem the most relevant

It is now possible to import your own frameworks into a playground. This provides a way to share code between your applications and playgrounds, which can both import your frameworks. To do this, your playground must be in the same workspace as the project that produces your framework. You must have already built your framework. If it is an iOS framework, it must be built for a 64-bit run destination (eg iPhone 5s). You must have an active scheme which builds at least one target (that target's build location will be used in the framework search path for the playground). Your "Build Location" preference (in advanced "Locations" settings) should not be set to "Legacy". If your framework is not a Swift framework the "Defines Module" build setting must be set to "Yes". Once all these conditions are fulfilled, importing your framework will work in a playground

Source: How to I import 3rd party frameworks into Xcode Playground?

Can anyone point me to a step by step on how to do this ?

In Xcode 7 there is a Sources folder in the Navigator Cmd 1 that will import any swift code locally in your playground.

操场

Beware that you need to mark the classes and functions in the Sources as public.

It's been over 3 years and I really hope you have been able to figure this out. Anyway, here's an answer for anyone experiencing the same problem.

Source code within the Sources folder are automatically imported. Simply ensure your class and methods are marked as public . And your class has public init method.

See screenshot below.

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM