Objective c 使用弱属性不像协议

Objective c 使用弱属性不像协议,objective-c,properties,Objective C,Properties,如您所知,当我们应用协议时,必须声明一个委托 @property (weak) id<NameOfProtocol> delegate; @属性(弱)id委托; 但是,当我这样声明时,Xcode显示错误消息(不使用协议) @属性(弱)id指针; 这有什么问题吗?所以当你走的时候 @property (weak) id<NameOfProtocol> delegate; 没有意义,因为您说我需要一个变量,但我不知道类型,因此我需要id但它符合对象的名称。。。这是矛盾

如您所知,当我们应用协议时,必须声明一个委托

@property (weak) id<NameOfProtocol> delegate;
@属性(弱)id委托;
但是,当我这样声明时,Xcode显示错误消息(不使用协议)

@属性(弱)id指针;
这有什么问题吗?

所以当你走的时候

@property (weak) id<NameOfProtocol> delegate;
没有意义,因为您说我需要一个变量,但我不知道类型,因此我需要
id
但它符合对象的名称。。。这是矛盾的,因为你有这个类型

因此,在这种情况下,应该只有一个正常的弱变量

@property (weak) NameOfObject *pointer;
所以当你走的时候

@property (weak) id<NameOfProtocol> delegate;
没有意义,因为您说我需要一个变量,但我不知道类型,因此我需要
id
但它符合对象的名称。。。这是矛盾的,因为你有这个类型

因此,在这种情况下,应该只有一个正常的弱变量

@property (weak) NameOfObject *pointer;

@属性(弱)id委托;
表示变量可以是任何类型,前提是它符合协议的名称


@属性(弱)id指针;
表示变量可以是任何类型,但其类型必须是NameOfObject

所以它没有意义

而不是

@属性(弱)name对象*指针;


@属性(弱)id委托;
表示变量可以是任何类型,前提是它符合协议的名称


@属性(弱)id指针;
表示变量可以是任何类型,但其类型必须是NameOfObject

所以它没有意义

而不是

@属性(弱)name对象*指针;

将头文件的代码向上放,而将头文件的代码向上放(谢谢您的解释:)。我不了解任何问题,如果它有帮助,我应该将其标记为答案谢谢你的解释:)。我不知道有什么问题,如果有帮助的话,应该把它标记为答案