@import “Unexpected '@' in program”

前端 未结 4 1332
慢半拍i
慢半拍i 2020-12-13 14:26

I updated project to Xcode 5 and enabled modules in build settings. However, I see compiler error Unexpected \'@\' in program when I use @import.

相关标签:
4条回答
  • 2020-12-13 14:59

    From the comment of @hw731 I think you use badly @import :

    old syntax to import framework :

    #import <UIKit/UIKit.h>
    

    but now, you can use the new syntax :

    @import UIKit;
    

    you need to enable theses modules to use the keyword @import (it's enable by default when you create a new project with Xcode 5) :

    enter image description here

    Have a look here.

    0 讨论(0)
  • 2020-12-13 15:17

    Got same error, checked the standard places:

    • Yes, I have correct code syntax
    • Yes, all the "Apple LLVM 5.0 - Languages - Modules" settings are YES. Both in this project and each its targets.
    • Yes, I'm using a workspace, but checked that all projects have enabled Modules. Both projects and their each targets.
    • Yes, checked I don't have any funny "smart" quotes anywhere
    • Yes, checked that I'm in a header.h or file.m file (not .mm/.c/.cpp/.hpp)

    The problem was that the header file was imported into file.mm file, which doesn't seem to support the new @import module syntax! Converted that header back to old style #import format and everything was fine again.

    0 讨论(0)
  • 2020-12-13 15:19

    Same problem when i subclass UIActivity and write property in .m file as

    @property(nonatomic, strong)NSArray *activityItems;
    

    fixed by moving this property to .h file.

    0 讨论(0)
  • 2020-12-13 15:20

    I also found that using following code in pch file:

    #ifdef __cplusplus
    #import <opencv2/opencv.hpp>
    #endif
    

    are not compatible with @import.

    0 讨论(0)
提交回复
热议问题