这让我发疯了。
我的核心数据模型中有一个名为“cardType”的字段,它被定义为 int16_t。
我希望它保留定义为 int 的 UISegmentedControl.selectedSegmentIndex 的设置。这个特殊的 UISegmentedControl 设置为 4 个段,所以 int16_t 是多余的。
如果我尝试设置
segmentedControl.selectedSegmentIndex = [dataTable cardType];
我收到一个错误“从'int16_t *'(又名'short *')分配给'NSInteger'(又名'int')的整数转换指针不兼容”
为了好玩,我在方法返回前放了一个星号,即。*[dataTable cardType],但这显然不起作用。我还做了一个 (int *)dataTable.cardType,但这也是一个愚蠢的尝试。编译器喜欢它,但运行时到处乱扔。
我还尝试了一些多步代码,我试图将值移动到一系列 NSNumber 和 NSInteger 操作中,但这些都不起作用。
我刚刚想到的另一个想法是将数据类型转换为 NSString 并使用字符串函数在文本和整数之间进行转换,但这似乎不太优雅。
看起来这应该是一件非常简单的事情,我只是太麻木了,找不到它。