我遇到了一个有趣的问题,并且无法在其上找到任何文档... 有时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)
对于properties中protocol.这只发生在某些类中,似乎是零星的.
我正在运行最新的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)