Can't access class from custom dynamic framework (Swift)

后端 未结 2 1933
予麋鹿
予麋鹿 2021-01-03 18:20

My test dynamic iOS framework XYZFramework consists of a single class XYZ.

However, even after declaring:

import XYZFramew         


        
相关标签:
2条回答
  • 2021-01-03 18:34

    If your Framework's class also contained Static and Instance Member functions you also need some more public keywords adding.

    // set the Framework class to Public
    public class FrameworkHello{  
    
       // set the initializer to public, otherwise you cannot invoke class
       public init() {  
    
       }
    
       // set the function to public, as it defaults to internal
       public static func world() {  
           print("hello from a static method")
       }
    }
    

    Now you can access this via your Swift code or with lldb:

    (lldb) po FrameworkHello.world()
    hello from a static method
    

    This ensures the Framework's Symbols are accessible in a Release build.

    0 讨论(0)
  • 2021-01-03 18:37

    Found the answer. I had to prefix my class declaration with the public modifier. So this:

    class XYZ {
    
    }
    

    became:

    public class XYZ {
    
    }
    

    And, as always, trashing the ~/Library/Developer/Xcode/DerivedData folder fixed any minor complications.

    0 讨论(0)
提交回复
热议问题