歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Objective-C 交叉引用問題的解決方案

objective-c 不允許交叉引用,上代碼:

A.h

  1. #import <Foundation/Foundation.h>   
  2. #import "B.h"   
  3.   
  4. @interface A : NSObject {  
  5.     B* _b; // 報錯點 1~   
  6. }  
  7.   
  8. -(void) test:(B*)b; // 報錯點 2~   
  9.   
  10. @end  
A.mm
  1. #import "A.h"   
  2.   
  3. @implementation A  
  4.   
  5. -(void) test:(B*)b {  
  6.     NSLog(@"test");  
  7. }  
  8.   
  9. @end  
B.h
  1. #import <Foundation/Foundation.h>   
  2. #import "A.h"   
  3.   
  4. @interface B : NSObject {  
  5.     A* _a; // 報錯點 3~   
  6. }  
  7.   
  8. @end  
B.mm
  1. #import "B.h"   
  2.   
  3. @implementation B  
  4.   
  5. @end  

解決方案:

頭文件中不要包含彼此的頭文件,將成員變量類型、方法參數類型改為由具體的類名 (A*,B*)  改為 id

.mm 實現文件中包含彼此的頭文件不會出錯,that's all!

Copyright © Linux教程網 All Rights Reserved