以下是苹果反馈的内容:
您的应用程序使用或引用了以下非公共 API:
- “
init:
”
在 App Store 上不允许使用非公共 API,因为这可能会导致用户体验不佳,如果这些 API 发生更改。
我最困惑的是 "init:",我的意思是,"init:" 有什么问题吗?我们不能使用 "init:" 吗?此外,当我们使用非公共 API 时,在 Xcode 中是否有任何警告?如何找到这些非公共 API?
您的应用程序使用或引用了以下非公共 API:
init:
”在 App Store 上不允许使用非公共 API,因为这可能会导致用户体验不佳,如果这些 API 发生更改。
我最困惑的是 "init:",我的意思是,"init:" 有什么问题吗?我们不能使用 "init:" 吗?此外,当我们使用非公共 API 时,在 Xcode 中是否有任何警告?如何找到这些非公共 API?
您真的不应该使用任何带有名称init:
的内容。这将是一个带有一个参数的init
方法,但没有解释该参数是什么。例如:
- (instancetype) init:(NSString *)string;
那将永远是一个错误的名称,正确的名称应该是:
- (instancetype) initWithName:(NSString *)string;
(或者 initWithTitle:
或者 initWithSomeOtherThingButSomething:
)
所以我首先会搜索 init:
, 这应该很容易修复。如果您实际上没有任何带有这个名称的方法,则这可能是苹果工具中的一个错误,您需要与苹果讨论。
init:
的方法。你可以调用没有参数的init
,或者带有参数的initWithThing:
,但不能使用init:
。 - mattid writer = [[_SBJsonWriterClass alloc]init:[[NSArray alloc] initWithObjects:@"Basic functions", @"Advanced functions", @"Accessory positioning", @"", nil]];
id parser = [[_SBJSONParserClass alloc] init:[[NSArray alloc] initWithObjects:@"Basic functions", @"Advanced functions", @"Accessory positioning", @"", nil]];
它们都在AFNetworking的AFJSONUtilities.m文件中。如何在不删除AFNetworking的情况下解决这个问题?只需更改名称即可吗?