2013-04-30 91 views
0

我看不出这有什么问题。我有一个类MyConnectionManager具有此代码:试图访问不可访问的接口函数方法?

public class MyConnectionManager { 
    private var _delegate:NetworkConnectionDelegate; 

    public function myfunc():void 
    { 
     this.delegate.onError(1); // compile error here! 
    } 

    public function get delegate():NetworkConnectionDelegate 
    { 
     return _delegate; 
    } 

    etc 

} 

其中NetworkConnectionDelegate是一个接口,并有一个方法的onError()

public interface NetworkConnectionDelegate { 
    function onError(x:int):void; 
} 

但是编译器(Flash Builder中)说,onError的是不可访问的方法编译MyConnectionManager时。为什么不编译?

回答

0

相信的与否,上述代码是完全没有问题。这是一个完全不同的源文件中的语法错误,它必须吓坏Flas Builer以导致编译器错误。一旦我解决了完全无关的错误,它编译得很好。这种编译错误永远不会发生在像VV ++或XCode这样的像样的编译器中,但FB看起来就像是一个漂亮的flakey。好吧。

0

接口描述了类实例的公共结构。 你需要创建你的类,然后从定义的接口实现它。 像, 类:

public class NetworkConnectionDelegate implements IError { 
... 
    // implements to IError interface 
    public function onError(x : int) : void { 
    .. 
    } 
} 

接口:

public interface IError { 
    function onError(x : int) : void; 
} 
+0

我知道我需要实现这个接口,而且我在另一个类中做过。这个编译时错误与接口是否在另一个类中实现无关。 – Marc 2013-04-30 14:14:09