- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是一个错误还是这里有一个微妙的教训?
NSNumber *someNumber = @(1);
[someNumber respondsToSelector:@selector(mutableCopy)]; // returns YES (!)
[someNumber respondsToSelector:@selector(mutableCopyWithZone:)]; // returns NO
苹果 LLVM 7.1(iOS SDK 9.3)
最佳答案
这是因为 NSObject
本身实现了 -mutableCopy
(对于所有对象,即使是那些不符合 NSCopying
或 NSMutableCopying 的对象
) 通过调用 -mutableCopyWithZone:
(这样实现 NSMutableCopying
的东西就可以实现 -mutableCopyWithZone:
而不需要重复-mutableCopy
的实现)。
所有继承自 NSObject
的东西都会响应 -mutableCopy
,但是如果你真的调用它,它会崩溃,因为 NSNumber
没有响应到 -mutableCopyWithZone:
。
你可以看到这个
assert([NSObject instanceMethodForSelector:@selector(mutableCopy)] == [NSNumber instanceMethodForSelector:@selector(mutableCopy)])
bbum 的分析很好地总结了这一点——动态地进行这些检查时会出现一些微妙的边缘情况,因为您可能会得到完全出乎意料的答案。
关于objective-c - NSNumber 正面回应 mutableCopy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42074197/
我已经构建了一个 Paypal 表单,如下例所示 ` 测试部分成功完成。但我不知道如何使用买家的交易 ID 检索 Paypal 响应,以便更改数据库中有
我成功发出了第一个请求,并且我想在其他类中访问我的 Volley 响应,我该怎么做,因为当我尝试这样做时,它会返回空响应 最佳答案 使用接口(interface)和回调 public interf
我真的被困在这里,老实说,我自己看不出有什么问题,而且我在我的网站上已经做过好几次这样的事情了。 我希望我的主页最多更新三个最新的新闻更新。我的表都设置了一个用于测试的条目。这是我的 php 代码,用
您好,我正在尝试回显从 mysqli 查询中选择的 2 个列,但看起来我做错了什么。 require('db_access.php'); $result = mysqli_query($db_conn
开始学习 PHP,在学习了基本的东西之后,这很容易,因为我在学校学习 C++,而且大部分东西都是相似的,我从 mysql 开始。一切正常,但我无法让 connect_errno 正常工作。 复制并粘贴
什么是命运 react ? Techempower.com 使用它们来对 Web 框架进行基准测试。我正在撰写有关 PHP 框架的文章,我想要一个易于理解的财富响应定义。 最佳答案 您可以在相关 te
我是初学者,所以我希望你能理解我。 我希望它在名为 usr 的 cookie 不为假时回显 javascript 代码。第一个 echo 完美运行,但 jquery 根本无法运行。 szeretlek
respond_to 可能不是那么明显?在 ruby 中工作。考虑一下: class A def public_method end protected def protect
我是一名优秀的程序员,十分优秀!