Swift类扩展 - 发送到实例的无法识别的选择器

时间:2015-09-29 15:27:54

标签: ios swift

在基础课程上创建课程扩展时,在使用以下内容时我会得到extension NSURLSessionDataTask: Taskable { func isRunning() -> Bool { return state == .Running } }

[__NSCFLocalDataTask isRunning]: unrecognized selector sent to instance 0x7fa93bdc07d0

错误:

for (int r = 0; r < data.Count; r++)
{
    var buttonField = new ButtonField
    {
        ButtonType = ButtonType.Button,
        Text = "Button",
        CommandName = "Display",                
    };
    break;
}

我正在尝试创建一个通用的任务界面,以便我能够使用不同类型的类,例如操作和会话任务,这里有什么我缺少的吗?

2 个答案:

答案 0 :(得分:4)

许多Cocoa类都是“类集群”,这意味着你可能会得到与你所要求的不同的类。 NSCFLocalDataTask是一个私有类,看起来它不会从NSURLSessionDataTask继承。尝试将您的扩展程序移至NSURLSessionTask

答案 1 :(得分:0)

为什么会发生这种情况:以“是”开头的Objective-C BOOL属性可能会有不同的处理方式。可能是您的func作为“running”方法导出到Objective-C,而不是“isRunning”。