- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图将 NSString 值传递给 char 类型变量,但我收到此错误 -
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString charValue]: unrecognized selector sent to instance 0x1f8dce60'
*** First throw call stack:
(0x357ae56b 0x35a8e97f 0x357b24fb 0x357b0c0d 0x35702e68 0x3d233 0x379d1 0x31cd2ead 0x3633accb 0x37235 0x39851 0x370c1 0x36c33 0x331eb 0x363575b5 0x362a8991 0x362a88ad 0x31c11acf 0x31c111bb 0x31c39323 0x356f52e1 0x31c39783 0x31b9dc65 0x3577f143 0x3577e9a9 0x3577d6ef 0x356fbc1d 0x356fbaa9 0x385bf33b 0x36865535 0x26ffd 0x344c6b20)
libc++abi.dylib: terminate called throwing an exception
我在他们的h文件中这样声明
char storageChar;
//..
@property (assign) char storageIcon;
然后在 m 中,我从 NSDictionary 条目中调用一个字符串,并尝试像这样将它传递到 char 中
// initalize storageChar - char
storageChar = [[tempDict valueForKey:@"STORAGE"] charValue];
一旦线程运行此应用程序崩溃,有人可以告诉我我做错了什么,因为在构建期间没有警告或错误...
最佳答案
问题是,如错误所述,您从 [tempDict valueForKey:@"STORAGE"]
获得的 NSString
不响应方法 字符值
。如果您查看 NSString
的文档,您不会在任何地方找到 charValue
。您可能想要的是 [[tempDict valueForKey:@"STORAGE"] UTF8String]
,假设您在 char
数组中使用 UTF-8 编码。您可能还想将 char 数组声明为数组,除非您的意思是 storageIcon
只是一个字符。
为什么在构建中没有收到警告或错误?问题是编译器无法知道将从 [tempDict valueForKey:@"STORAGE"]
返回什么类型的对象。所以它只需要相信你的话,对象将响应 charValue
。在运行时它发现你错了并给你一个错误。这是像 Objective-C 这样非常动态的语言的标准陷阱。
关于iphone - 将 NSString 传递给 charValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11894805/
我试图将 NSString 值传递给 char 类型变量,但我收到此错误 - *** Terminating app due to uncaught exception 'NSInvalidArgum
我已经在谷歌上搜索了很多以找到与 respondsToSelector 等效的内容,但我仍然可以找到任何最佳解决方案。请建议我使用 Swift3 或 4 中的任何对象。 objective-C [(i
我是 Java 新手,我需要一个接受 4 个整数输入、4 个 double 输入和 3 个字符输入的程序。我已经准备好整数和 double 输入。我真的需要帮助获取字符输入,请帮忙。 我不断收到此错误
我是一名优秀的程序员,十分优秀!