gpt4 book ai didi

ios - 将协议(protocol)转换为方法参数并传递

转载 作者:行者123 更新时间:2023-12-01 17:52:57 25 4
gpt4 key购买 nike

制作一个生物可以与他人一起繁殖的游戏。我已经定义了一个协议(protocol),以便某些生物可以繁殖。

但是,我似乎无法弄清楚如何正确施放和传递该生物

// Creature may breed with any other creature allowed to breed
@protocol Mateable
-(void)mateWith:(id<Mateable> *)entity;
@end

当玩家触摸一个生物时,我有逻辑来施放该生物并通过它:
// If user taps on a create that can breed, we make it happen...
if( [touching conformsToProtocol:@protocol(Mateable)] ){
id<Mateable> mate = (id<Mateable>) touching;
[player mateWith:mate];
}

但是,我收到一个错误:
Cannot initialize the parameter of type '__autorelease <id>Mateable' with an lvalue of type '__strong id<Mateable>'
我怎样才能正确地施放并将生物作为参数传递?

最佳答案

你不需要*id 之后因为id已经是指针类型

所以

// Creature may breed with any other creature allowed to breed
@protocol Mateable
-(void)mateWith:(id<Mateable>)entity;
@end

您应该能够自己弄清楚,因为您的 mateid<Mateable>你把它传递给 id<Mateable> *

关于ios - 将协议(protocol)转换为方法参数并传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23818760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com