私はJavaでそれを行う方法を知っているが、イムstubling Javaでいくつかのプロトコルの問題
私はこのようなインタフェースを持っています:
public interface Car {
public void startCar();
}
、これを実装したクラスをインターフェース:
public class SomeCarImpl implements Car {
public void startCar() {
System.out.println("starting the car...");
}
}
、今私は私のメインのクラスで、これにできるようになる
public void MainClass {
public static void main(String [] args) {
Car myCar = new SomeCarImpl();
car.startCar();
}
}
ここで、私は客観的に困っています。最初の二つのことを簡単なプロトコルで作られたが、私はこのようにそれを呼び出したいとき、何も私はあなたが...私の問題を理解し、
// :-)私を助けることができると思います
//header
id <Car> *myCar;
//instance
myCar = [[SomeCarImpl alloc] init];
//calling and nothing happens
[myCar startCar];
を起こりませんしています編集ここでコード最終的
@interface SomeCarImpl:NSObject<Car>
@end
@implementation SomeCarImpl
-(void)startCar{
NSLog(@"run");
}
@end
@protocol Car <NSObject>
-(void)startCar;
@end
@interface DetailViewController:UIViewController<UISplitViewControllerDelegate> {
IBOutlet UIButton *runButton;
id<Car> myCar;
}
@property(strong, nonatomic)IBOutlet UIButton *runButton;
@property(strong, nonatomic)id<Car> myCar;
@end
及び(detailViewController.myCar =] [SomeCarImpl]アロケーション] INIT事前のtableViewに呼ばれる)
-(IBAction)runButton:(id)sender {
[myCar startCar];
}
ありますタイプ
id
がすでにあるので
id <Car> *myCar;
:
目的のCコードを見てみましょう - Javaコードは関係ありません – Mark
いくつかのブレークポイントを設定しましたか? – Tomen