小编Chr*_*her的帖子

Obj-c协议属性未在符合类中实现

问题


我遇到了一个有趣的问题,并且无法在其上找到任何文档... 有时properties在a protocol中声明的未在符合该类的特定类中实现,protocol并且发生运行时异常.dynamic property在一些奇怪的情况下,定义是否被优化?不能protocols用于properties宣布dynamic?任何对此的见解将不胜感激.

以下是一些更多细节.

鉴于protocol:

@protocol MyProtocol <NSObject>
    @property (nonatomic, strong) id someProperty;
@end
Run Code Online (Sandbox Code Playgroud)

和一个实现protocol类似的类:

@interface MyClass <MyProtocol>
@end

@implementation MyClass
@dynamic someProperty;
@end
Run Code Online (Sandbox Code Playgroud)

我注意到有时我无法从呼叫中获取任何信息

class_getProperty(myClass, propertyName);
Run Code Online (Sandbox Code Playgroud)

对于propertiesprotocol.这只发生在某些类中,似乎是零星的.

我正在运行最新的Xcode 4并链接到iOS 6 SDK.我确实在同一台机器上安装了预发布的Xcode 5,虽然它不是默认的(通过xcode-select).


如果您运行此代码:

@protocol MyProtocol <NSObject>

@property (nonatomic, strong) id someData;

@end

@interface MyObject : NSObject <MyProtocol>

@end

@implementation MyObject

@dynamic …
Run Code Online (Sandbox Code Playgroud)

objective-c objective-c-runtime ios

7
推荐指数
1
解决办法
1004
查看次数

标签 统计

ios ×1

objective-c ×1

objective-c-runtime ×1