gpt4 book ai didi

cocoa - 如何解决使用 [NSValue valueWithPointer :t]? 时的 "Implicit conversion of an Objective-C pointer to ' const void' is disallowed”错误

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

使用以下消息时,如何修复错误“禁止将 Objective-C 指针隐式转换为‘const void’”:

NSValue *key = [NSValue valueWithPointer:t];

特别感谢能够提供为什么此代码会抛出此异常(如果简单的新手术语)的人。

如果有帮助的话,这是完整的方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for (UITouch *t in touches) {
// Is this a double tap?
if ([t tapCount] > 1) {
[self clearAll];
return;
}

// Use the touch object (packed in an NSValue) as the key
NSValue *key = [NSValue valueWithPointer:t]; // here is where the error is

// Create a line for the value
CGPoint loc = [t locationInView:self];
Line *newLine = [[Line alloc] init];
[newLine setBegin:loc];
[newLine setEnd:loc];

// Put pair in dictionary
[linesInProcess setObject:newLine forKey:key];
}

最佳答案

我在《Big Nerd Range Guide》第二版中的练习中遇到了同样的问题,该指南不包括 ARC。这就是问题所在。他们在这里更新了示例/解决方案代码:http://www.bignerdranch.com/solutions/iOSProgramming3ed.zip

在其中,您可以看到他们已将该行更改为:

NSValue *key = [NSValue valueWithNonretainedObject:t];

关于cocoa - 如何解决使用 [NSValue valueWithPointer :t]? 时的 "Implicit conversion of an Objective-C pointer to ' const void' is disallowed”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7209714/

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