Ste*_*uso 18 iphone ios swift ios8 ios-app-extension
有没有人知道编写iOS 8共享扩展的好方法而没有MainInterface.storyboard
模板附带的扩展?
当我删除文件或删除NSExtensionMainStoryboard
从Info.plist
,扩展停止工作(没有当你在共享窗格中的按钮,点击会发生).我们试图取代NSExtensionMainStoryboard
与NSExtensionPrincipalClass
这也没有工作.
有任何想法吗?
Ste*_*uso 49
弄清楚了!
事实证明,在Swift中有一个奇怪的模块命名事件,所以你可以通过@objc
在类中添加一个名称来修复它:
@objc(PrincipalClassName)
class PrincipalClassName: UIViewController {
...
Run Code Online (Sandbox Code Playgroud)
然后将NSExtensionPrincipalClass
密钥设置为PrincipalClassName
.
4ae*_*1e1 20
而不是@objc
hack,在 Swift 中正确的方法是在 中包含模块名称NSExtensionPrincipalClass
,即,
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).ActionViewController</string>
Run Code Online (Sandbox Code Playgroud)
(否则记录错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: ...)'
Run Code Online (Sandbox Code Playgroud)
希望能帮助将来遇到此错误的人。)
归档时间: |
|
查看次数: |
5953 次 |
最近记录: |