2011-10-27 64 views
0

我正在爲我的iOS應用程序的設計問題研究協議。現在我明白了用法,並且需要一個協議,並且我也明白它們與C#和Java中的接口類似。Objective-C通過協議調用iOS方法

你可以通過協議本身調用方法嗎?例如,在C#中,我可以做到以下幾點:

public interface IInterface 
{ 
    void SomeMethod(); 
    void SomeOtherMethod(); 
} 


public class AClass : IInterface 
{ 
    public void SomeMethod() 
    { 
     //Do something 
    } 

    public void SomeOtherMethod() 
    { 
     //Do something 
    } 
} 


public class Program 
{ 
    public void Main() 
    { 
     IInterface i = new AClass(); 
     i.SomeMethod(); 
    } 
} 

這是可能在Objective-C還是我試圖迫使一個.NET式的方法爲iOS的?

回答

4
@protocol Protocol 
- (void)someFunction; 
@end 

@interface A <Protocol> 
@end 

@implementation A 
- (void) someFunction 
{ 
    .... 
} 
@end 

在其他一些地方

id<Protocol> a = [[A alloc] init]; 

[a someFunction]; 

[a release]; 
+0

這是絕對精彩。感謝您的快速回復 - 只要StackOverflow允許,我將立即標記爲正確(我必須等待5分鐘) – JordanMazurke

+0

@JordanMazurke歡迎您;) – kovpas