gpt4 book ai didi

ios - 铿锵错误 : function definition declared 'typedef'

转载 作者:行者123 更新时间:2023-11-29 13:56:35 25 4
gpt4 key购买 nike

我正在使用clang编译我的代码,但是我得到一个错误,代码和错误如下:

/Users/fenglihai/llvm/llvm_build/Debug/bin/ClangConfuse /Users/fenglihai/Desktop/Test/Test/ITXAppdelegate.m /Users/fenglihai/Desktop/Test/Test/main.m /Users/fenglihai/Desktop/Test/Test/MainViewController.m /Users/fenglihai/Desktop/Test/Test/VTEnumType.h /Users/fenglihai/Desktop/Test/Test/ITXAppdelegate.h /Users/fenglihai/Desktop/Test/Test/MainViewController.h -- -w -std=gnu11 -fobjc-abi-version=2 -Wnullability-completeness -Wno-arc-repeated-use-of-weak -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -isystem /Users/fenglihai/llvm/llvm_build/Debug/lib/clang/9.0.0/include -Wnull-dereference -fobjc-weak -ObjC -mios-simulator-version-min=8.0 -ObjC -lSDWebImage -lSVProgressHUD -lYYCache -lYYCategories -lc++ -ljcore-ios-1.2.6 -ljpush-ios-3.1.2 -lpop -lresolv -lsqlite3 -lz -framework Accelerate -framework CFNetwork -framework CoreFoundation -framework CoreGraphics -framework CoreImage -framework CoreTelephony -framework CoreText -framework Foundation -framework ImageIO -framework QuartzCore -framework Security -framework SystemConfiguration -framework UIKit -weak_framework UserNotifications -I/Users/fenglihai/Desktop/Test/Test -I/Users/fenglihai/Desktop/Test/Test -I/Users/fenglihai/Desktop/Test/Test -I/Users/fenglihai/Desktop/Test/Pods/Headers/Public -I/Users/fenglihai/Desktop/Test/Pods/Headers/Public/JPush -I/Users/fenglihai/Desktop/Test/Pods/Headers/Public/SDWebImage -I/Users/fenglihai/Desktop/Test/Pods/Headers/Public/SVProgressHUD -I/Users/fenglihai/Desktop/Test/Pods/Headers/Public/YYCache -I/Users/fenglihai/Desktop/Test/Pods/Headers/Public/YYCategories -I/Users/fenglihai/Desktop/Test/Pods/Headers/Public/pop 

我得到错误:

/Users/fenglihai/Desktop/Test/Test/VTEnumType.h:13:44: error: function definition declared 'typedef'
typedef NS_ENUM(NSUInteger, VTLayoutStyle) {
^
/Users/fenglihai/Desktop/Test/Test/VTEnumType.h:15:5: error: use of undeclared identifier 'VTLayoutStyleDefault'
VTLayoutStyleDefault,
^
/Users/fenglihai/Desktop/Test/Test/VTEnumType.h:17:5: error: use of undeclared identifier 'VTLayoutStyleDivide'; did you mean 'VTLayoutStyle'?
VTLayoutStyleDivide,
^~~~~~~~~~~~~~~~~~~
VTLayoutStyle
/Users/fenglihai/Desktop/Test/Test/VTEnumType.h:13:29: note: 'VTLayoutStyle' declared here
typedef NS_ENUM(NSUInteger, VTLayoutStyle) {
^
/Users/fenglihai/Desktop/Test/Test/VTEnumType.h:19:5: error: use of undeclared identifier 'VTLayoutStyleCenter'; did you mean 'VTLayoutStyle'?
VTLayoutStyleCenter,
^~~~~~~~~~~~~~~~~~~
VTLayoutStyle
/Users/fenglihai/Desktop/Test/Test/VTEnumType.h:13:29: note: 'VTLayoutStyle' declared here
typedef NS_ENUM(NSUInteger, VTLayoutStyle) {
^
4 errors generated.
Error while processing /Users/fenglihai/Desktop/Test/Test/VTEnumType.h.

VTEnumType.h

#ifndef VTEnumType_h
#define VTEnumType_h

/** 导航栏布局样式 */
typedef NS_ENUM(NSUInteger, VTLayoutStyle) {
/** 默认样式,item自适应文本宽度,间距由itemSpacing决定 */
VTLayoutStyleDefault,
/** items等分导航条宽度,常用于item数较少时 */
VTLayoutStyleDivide,
/** 导航栏居中布局,间距由itemSpacing决定 */
VTLayoutStyleCenter,
};



#endif /* VTEnumType_h */


ITXAppdelegate.m

#import "ITXAppdelegate.h"
#import "VTEnumType.h"

@interface ITXAppdelegate ()
@property (nonatomic, assign) VTLayoutStyle height;
@end

@implementation ITXAppdelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.height =VTLayoutStyleDefault ;
return YES;
}

@end

最佳答案

如果您通过 clang 的直接命令行构建项目,那么我认为发生的情况是您将 clang 的头文件 (.h) 指定为源文件,而它们不是。

这是如果 NS_ENUM 宏不可用时您会得到的错误——编译器只是对您在那里尝试做什么感到困惑。该宏通常通过标准 Foundation 和 Cocoa 包含头文件提供,但如果编译器试图将您的头文件本身视为源文件,那么该头文件不包含 Foundation,因此枚举内容不存在t 在那时定义。

更重要的是,您应该只要求 clang 编译源单元 (.m)。编译器将看到对 header 的引用,并根据需要通过预处理器加载它们。如果它在执行此操作时无法找到它需要的 header ,它会让您知道。

关于ios - 铿锵错误 : function definition declared 'typedef' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55315949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com