大佬教程收集整理的这篇文章主要介绍了ios – NSManagedObject无法符合Swift中的协议,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
协议产品{
var code:String {get set}
var sp:String {get set}
}
class Stock: NsmanagedObject,Product { @Nsmanaged var code: String @Nsmanaged var sp: String
}
错误:架构i386的未定义符号:
“__TFC11YellowPages5Stockg2spSS”,引自:
Stock.o中的__TFC11YellowPages5Stockm2spSS
“__TFC11YellowPages5Stockg4codeSS”,引自:
Stock.o中的__TFC11YellowPages5Stockm4codeSS
ld:找不到架构i386的符号
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
class MyEntity: NsmanagedObject { @Nsmanaged var testAttribute: String } @objc protocol MyProtocol { var testAttribute: String { get set } } extension MyEntity: MyProtocol { } class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate let myContext = appDelegate.managedObjectContext! let entity: MyEntity = NSEntityDescription.insertNewObjectForEntityForName("MyEntity",inManagedObjectContext: myContext) as MyEntity foo(entity) println(entity.testAttributE) } func foo(var object: MyProtocol) { object.testAttribute = "bar" } }
下面也有用,但我认为以上是更好的方法:
@objc protocol MyProtocol { var testAttribute: String { get set } } class MyEntity: NsmanagedObject,MyProtocol { @Nsmanaged var testAttribute: String } class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate let myContext = appDelegate.managedObjectContext! let entity: MyEntity = NSEntityDescription.insertNewObjectForEntityForName("MyEntity",inManagedObjectContext: myContext) as MyEntity foo(entity) println(entity.testAttributE) } func foo(var object: MyProtocol) { object.testAttribute = "bar" } }
以上是大佬教程为你收集整理的ios – NSManagedObject无法符合Swift中的协议全部内容,希望文章能够帮你解决ios – NSManagedObject无法符合Swift中的协议所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。