【发布时间】:2015-07-31 17:13:09
【问题描述】:
我不熟悉 Objective C。
我正在使用一个私有框架,并且需要能够从我的 Swift 代码中更改其中一个属性。
Objective C 中的属性是这样声明的:
@property (nonatomic, assign) BOOL *isSSNField;
我正在尝试以这种方式更改属性的值:
myClass.isSSNField = true
我收到了这个错误
Cannot assign a value of type 'Bool' to a value of type 'UnsafeMutablePointer<ObjcBool>'
我不知道从这里去哪里,或者我为什么会收到这个错误
【问题讨论】:
-
您确定该属性应该是指向 BOOL 的 指针 吗?
-
BOOL *isSSNField你确定吗?这是在 Objective-C 中声明属性的一种非常不寻常的方式。BOOL*是一种非常稀有的鸟。我认为公平地说,虽然我在实践中遇到BOOL*(尤其是在某些枚举方法中),但我从未见过或使用过BOOL*属性在我的生活中。 -
是的,这绝对是财产
-
BOOL*看起来确实像一个错误,应该只是BOOL。 -
更多信息会有所帮助。你想给指针本身赋值,还是给它指向的布尔值赋值?在第一种情况下,是否应该分配指针?谁负责释放内存?
标签: objective-c swift pointers casting unsafe-pointers