gpt4 book ai didi

objective-c - stringWithFormat 中的枚举引发不兼容的指针类型警告

转载 作者:行者123 更新时间:2023-12-03 16:54:40 24 4
gpt4 key购买 nike

我有一个枚举属性:

typedef enum syncCodeTypes {
kCodeNull,
kCodeFoo,
kCodeBar,
kCodeDone
} syncCodeType;

//...

@property syncCodeType syncCode;

我在stringWithFormat:中使用它:

[self showAlertWithMessage:NSLocalizedString(@"Sync Error", @"Sync Error") andInfo:[NSString stringWithFormat:NSLocalizedString("Heads up re foobar code %d.", "Heads up re foobar code %d."), self.syncCode]];

...并收到此警告:

Passing argument 1 of localizedStringForKey:value:table from incompatible pointer type.

如果我替换无符号转换说明符(%u 而不是 %d),也会发生同样的情况。编译器也不喜欢 %lu%ld%llu%lld

有关相关语言的其他帖子建议枚举既不是有符号的也不是无符号的,因此我尝试将枚举显式转换为有符号和无符号整数 - 并得到了完全相同的错误消息:

NSInteger iSyncCode = self.syncCode;
[self showAlertWithMessage:NSLocalizedString(@"Sync Error", @"Sync Error") andInfo:[NSString stringWithFormat:NSLocalizedString(“Heads up re foobar code %d.", “Heads up re foobar code %d."), iSyncCode]];
// compiler still annoyed

NSUInteger uSyncCode = self.syncCode;
[self showAlertWithMessage:NSLocalizedString(@"Sync Error", @"Sync Error") andInfo:[NSString stringWithFormat:NSLocalizedString(“Heads up re foobar code %u.”, “Heads up re foobar code %u.”), uSyncCode]];
// compiler still annoyed

目前在运行时没有问题。但我想成为犹太洁食者。有什么建议吗?

最佳答案

您忘记了 NSLocalizedString 中字符串之前的 @ 符号。

“请注意 foobar 代码 %d。” 替换为 @“请注意 foobar 代码 %d。”

关于objective-c - stringWithFormat 中的枚举引发不兼容的指针类型警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122178/

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