ios - 如何在 iOS 中调用带有 id 对象参数的方法?

标签 ios objective-c

我创建了一个协议(protocol)和一个添加类的方法。但是当我想通过这种方法添加类时出现错误: arc 不允许将 objective-c 指针隐式转换为“__autoreleasing id *”

 self.homeViewController = [[HomeViewController alloc] init];   
 [DataController addProgressListener:self.homeViewController];

MyProtocol 类

- (void) addProgressListener:(id*)idbProgressListener {
        if(self.progressListeners == nil)
            self.progressListeners = [NSMutableArray<IDBProgressListener> alloc];

        [self.progressListeners addObject:*idbProgressListener];
    }

最佳答案

有了 id,您就不必使用 *。 id 内部有一个分配给它自己的指针。您不需要显式传递它。

关于ios - 如何在 iOS 中调用带有 id 对象参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33892710/

相关文章:

iphone - 仅在 iPad 上从其他应用程序打开 URL,在 iPhone 上禁用

ios - 自动布局和可调整大小 View 的问题

ios - 获取长按时在 UIScrollView 中添加的 UIButtons 的标签

ios - Xcode 7 : linker command failed with exit code 1 (use -v to see invocation) again

objective-c - 旋转后重新组织 View 中元素的最佳方法是什么?

ios - 在 Objective C 中使用静态变量来引用类的实例?

ios - Swift: fatal error :在初始化 UIlabel 值时展开可选值时意外发现 nil

iphone - 通过 View Controller 调用返回方法

objective-c - Objective-C 中的移动平均线

objective-c - 关于 CC_SHA256 objective-c 的一些信息