代码之家  ›  专栏  ›  技术社区  ›  Jason

为什么我的目标C实现文件不能识别我的导入语句?

  •  2
  • Jason  · 技术社区  · 15 年前

    这是我的头文件

    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import <PolygonShape.h>
    
    @interface Controller : NSObject {
        IBOutlet UIButton *decreaseButton;
        IBOutlet UIButton *increaseButton;
        IBOutlet UILabel *numberOfSidesLabel;
        //IBOutlet PolygonShape *shape;
    }
    - (IBAction)decrease;
    - (IBAction)increase;
    @end
    

    这是我的实现文件

    #import "Controller.h"
    
    @implementation Controller
    - (IBAction)decrease {
        //shape.numberOfSides -= 1;
    }
    
    - (IBAction)increase {
        //shape.numberOfSides += 1;
    }
    @end
    

    为什么我的 #import "Controller.h" 线路?

    error: PolygonShape.h: No such file or directory
    

    polygonshape.h和.m文件与controller类位于同一项目和同一目录中。

    3 回复  |  直到 13 年前
        1
  •  6
  •   Chuck    15 年前

    角撑( <> )意味着文件位于标准include路径中,例如/usr/include或/system/library/frameworks。要导入相对于当前目录的文件,需要像在中一样使用双引号 #import "Controller.h" .

        2
  •  1
  •   Terry Wilcox    15 年前

    系统头文件使用<>。您的头文件应该使用“”。

    所以应该是:

    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import "PolygonShape.h"
    

    您可能希望在头文件中使用@class polygonshape并在实现中执行导入。

        3
  •  0
  •   Leo user370469    13 年前

    如果在B中导入类A,然后在A中导入类B,则会出现此错误。