gpt4 book ai didi

objective-c - 如何将 Swagger 规范中的 bool 数据类型映射到 Objective C 客户端 SDK 中的 NSNumber?

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:39 26 4
gpt4 key购买 nike

我正在使用 swagger-codegen用Objective C语言生成客户端SDK。我的 API 之一采用 bool 参数。参数在 Swagger Specification 中定义如下:

"parameters": [
{
"name": "recursive",
"in": "query",
"description": "",
"required": false,
"type": "boolean"
}
]

生成的客户端 SDK 正在检查 BOOL 变量是否为 nilBOOL 是 Objective C 中的基本类型,无法根据 nil 检查。它导致编译错误。

-(NSNumber*) folderDeleteFolderWithCompletionBlock: (NSString*) path recursive: (BOOL) recursive {
...
if(recursive != nil)
{
queryParams[@"recursive"] = recursive;
}
...
}

如果我们使用 NSNumber + (NSNumber *)numberWithBool:(BOOL)value 代替 BOOL,这个问题就可以解决。如何将 swagger 规范中的 boolean 映射到客户端 SDK 中的 NSNumber

我在 ObjcClientCodegen.java 中做了一些改动喜欢替换以下行

typeMapping.put("boolean", "BOOL");

typeMapping.put("boolean", "NSNumber");

甚至我从 defaultIncludeslanguageSpecificPrimitives HashSets 中删除了 BOOL

defaultIncludes = new HashSet<String>(
Arrays.asList(
/*"bool",
"BOOL",*/
"int",
"NSString",
"NSObject",
"NSArray",
"NSNumber",
"NSDate",
"NSDictionary",
"NSMutableArray",
"NSMutableDictionary")
);
languageSpecificPrimitives = new HashSet<String>(
Arrays.asList(
"NSNumber",
"NSString",
"NSObject",
"NSDate"/*,
"bool",
"BOOL"*/)
);

尽管此生成的客户端 SDK 使用 BOOL 数据类型而不是 NSNumber。

在这方面的任何帮助将不胜感激。

最佳答案

最新版本Swagger-Codegen是否解决了这个问题。

关于objective-c - 如何将 Swagger 规范中的 bool 数据类型映射到 Objective C 客户端 SDK 中的 NSNumber?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32137362/

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