OC 类型不匹配问题

在OC中,两个不同类型的对象也是可以相互赋值的,比如NSString *s和NSNumber *n类型,可以写成s=n;编译器不会报错,但是会提示警告,如果,b是通过NSDictionary或其他容器中获取的,也就是不确定里面的类型,这时候警告也没有。就很容易犯错了。

s=b,实际运行结果

赋值后,s的类型会变成b的类型,在这里就是 NSNumber,运行到这里也不会有什么大的错误,但是,如果后面有用到s的地方,比如调用了NSString的一些特有的方法,但是NSNumber是没有的,因为s已经变成了b的类型,这时候会出现方法无法找到的crash,是crash,所以在不确定类型的时候务必要做类型判断。

时间: 2024-11-10 08:08:15

OC 类型不匹配问题的相关文章

scanf类型不匹配造成死循环

int i = 0; while (flag) { printf("please input a number >>> "); scanf("%d", &i);//输入一个字符或字符串的时候死循环 printf("%d\n", i); } 以上直接返回一串0........死循环 当scanf输入类型不匹配的时候,返回一个0值,但是之前输入的字符仍旧在缓冲区里面,所以解决方式也比较容易,在代码中加入fflush(stdi

IE浏览器“SEC7113: CSS 因 Mime 类型不匹配而被忽略”问题的解决方法

写好的CSS文件使用IE浏览器不加载,但使用火狐等浏览器却能够正常显示.读了这篇文章的方法2才知道,使用ie本地直接打开则调用file协议时CSS不加载,把所写的文件放入本地Apache服务器内,再用ie打开调用http协议,显示正常,问题解决. 原帖位置:http://www.uedsc.com/css-mime-type-mismatch.html 什么是Mime类型? MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型就是设定某种

SSIS错误信息解决1(字符串类型不匹配)

字符串类型不匹配 错误信息: [Local HR Data [2]] Error: There was an error with Local HR Data.Outputs[OLE DB Source Output].Columns[DivisionC] on Local HR Data.Outputs[OLE DB Source Output]. The column status returned was: "Text was truncated or one or more charac

解决IE下CSS因 Mime 类型不匹配而被忽略的问题

写页面的时候在chrome,firefox等页面上显示正常,但是换成IE9之后就完全没有样式了,报错信息是CSS 因 Mime 类型不匹配而被忽略,下面与大家分享下这个问题的相关的回答.IE真是个奇葩的怪胎.它的报错信息是’CSS 因 Mime 类型不匹配而被忽略‘,也就是说所有的.css文件全部都不起效果了.去网上查了一些资料,有很多与这个问题相关的回答. 首先要明白Mine类型是个什么.MIME类型就是设定某种指定扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器

关于值类型与列类型不匹配,所需类型是 DataRow"的解决方案

今天,在vs2005下将SqlDataReader 转换为DataTable时,出现了 "值类型与列类型不匹配不能在 ID 列中存储 <30>.所需类型是 DataRow"的错误码,后来查了后,原来是这里的问题,查找相关资料后发现,(把蓝字部分修改成红字部分),修改成功 public static DataTable ConvertDataReaderToDataTable(OleDbDataReader dataReader)        {            //

如何逐步实现动态库的加载,类型的匹配

如何逐步实现动态库的加载,类型的匹配,动态链接库函数导出的定义,参考下面宏定义即可:  #define LIBEXPORT_API extern "C" __declspec(dllexport) 第一步,我先从简单的调用出发,定义了一个简单的函数,该函数仅仅实现一个整数加法求和: LIBEXPORT_API int mySum(int a,int b){ return a+b;}  C# 导入定义: public class RefComm  {  [DllImport("

IE9以上 CSS文件因Mime类型不匹配而被忽略 其他浏览器及IE8以下显示正常

 什么是Mime类型? MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开.多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式.  为什么会出现错误?  在IE9以上的IE浏览器中,尤其是本地环境下,在没有配置服务器的环境下,会遇到外链的CSS文件无法加载成功,而导致想要的效果没有实现!当你遇到这样的问题时,你

IE9,IE10 CSS因Mime类型不匹配而被忽略问题 (转)

写页面的时候在chrome,fireforks等页面上显示正常,但是换成IE9,IE10之后就完全没有样式了,报错信息是CSS 因 Mime 类型不匹配而被忽略,下面与大家分享下这个问题的相关的回答 写页面的时候在chrome,fireforks等页面上显示正常,但是换成IE9之后就完全没有样式了.IE真是个奇葩的怪胎.它的报错信息是’CSS 因 Mime 类型不匹配而被忽略‘,也就是说所有的.css文件全部都不起效果了.去网上查了一些资料,有很多与这个问题相关的回答. 首先要明白Mine类型是

NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc limit ?,20;出现

异常:类型不匹配 05-06 08:12:38.151: E/AndroidRuntime(14904): java.lang.NumberFormatException: Invalid int: "18600000099" 05-06 08:12:38.151: E/AndroidRuntime(14904): at com.itheima.mobilesafe74.activity.BlackNumberActivity$Myadapter.getView(BlackNumber