Reputation: 343
I have created a new Swift class in a new file
import Foundation
class RecordedAudio: NSObject{
var filePathUrl: NSURL!
var title: String!
}
and now I want use it inside another class by creating a new object.
import UIKit
import AVFoundation
class recordSoundsViewController: UIViewController, AVAudioRecorderDelegate {
var audioRecorder: AVAudioRecorder!
var recordedAudio: RecordedAudio! // new object gives error
But Xcode is giving me the error "Use of undeclared type RecordedAudio" so I got stuck there. A similar question has been posted here: How do I import a Swift file from another Swift file? but none of those solutions worked for me. BTW, this is part of the Udacity swift class. Thanks, any help would be appreciated.
Upvotes: 24
Views: 17752
Reputation: 535121
In the Project Navigator on the left, select the file where you declared RecordedAudio.
Now, in the File inspector on the right, look at the Target Membership. The app target (not the Test target) should be checked, similar to this:
If not, check it! And now all will be well.
Upvotes: 66
Reputation: 1258
Tried the ownership toggling, cleaning, restarted x-code, deleted and re-adding reference but no result.
A pod install
fixed it for me, weird because my class was not from another module or library.
Upvotes: 0
Reputation: 814
If your class is in another Module, please make sure that your class and the class initializers have the public access modifier.
Upvotes: 5
Reputation: 8914
I just had to do the Full Monty to get it to work...
Also maybe add @objc to the line above your class definition and maybe make it public class
just to be explicit and possible add public
to your methods as well. Oh and make sure you are subclassing NSObject
.
If you are stuck getting your initialiser to show up, I've also just noticed that Swift 4.2 has lots more problems here. I switched back to Swift 3. No problems...
Upvotes: 4
Reputation: 921
For me, I had to check the same target memberships on the class as in the ViewController (I had a TodayExtension)
Upvotes: 1
Reputation: 2243
In my case I had to remove the references from the project navigator, and then add them again (the target membership was not the problem).
Upvotes: 4