iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >iOS中id与instancetype的区别
  • 195
分享到

iOS中id与instancetype的区别

iosobjective-c 2023-09-17 18:09:44 195人浏览 安东尼
摘要

关联返回类型与非关联返回类型 关联性返回类型 根据Cocoa的命名规则,满足下述规则的方法: (1)类方法中,以alloc或new开头 (2)实例方法中,以autorelease,init,ret

关联返回类型与非关联返回类型

  • 关联性返回类型

根据Cocoa的命名规则,满足下述规则的方法:
(1)类方法中,以alloc或new开头
(2)实例方法中,以autorelease,init,retain或self开头
会返回一个方法所在类类型的对象,这些方法就被称为是关联返回类型的方法。换句话说,这些方法的返回结果以方法所在的类为类型。

例如:

@interface NSObject  + (id)alloc;  - (id)init;  @end

[NSArray alloc]与[[NSArray alloc]init]返回的都为NSArray的对象。

  • 非关联返回类型
@interface NSArray  + (id)constructAnArray;  @end[NSArray constructAnArray];

根据Cocoa的方法命名规范,得到的返回类型就和方法声明的返回类型一样,是id。

但是如果使用instancetype作为返回类型,如下:

@interface NSArray  + (instancetype)constructAnArray;  @end/[NSArray constructAnArray];

此时返回类型和方法所在类型相同。

instancetype的作用,就是使那些非关联返回类型的方法返回所在类的类型!

两者之间的区别

  • id在编译的时候不能判断对象的真是类型

    instancetype在编译的时候可以判断对象的真是类型。

  • 如果init方法的返回值是instancetype,那么将返回值赋值给一个其他的对象汇报一个警告。

    如果是在以前, init的返回值是id,那么将init返回的对象地址赋值给其它对象是不会报错的

  • id可以用作定义变量,也可做返回值,也可以作为形参传入。但是instancetype只能作为返回值。

来源地址:https://blog.csdn.net/weixin_42357849/article/details/122602601

--结束END--

本文标题: iOS中id与instancetype的区别

本文链接: https://www.lsjlt.com/news/411266.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS中id与instancetype的区别
    关联返回类型与非关联返回类型 关联性返回类型 根据Cocoa的命名规则,满足下述规则的方法: (1)类方法中,以alloc或new开头 (2)实例方法中,以autorelease,init,ret...
    99+
    2023-09-17
    ios objective-c
  • css中id与class的区别是什么
    这篇文章主要介绍“css中id与class的区别是什么”,在日常操作中,相信很多人在css中id与class的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css中id与class的区别是什么”的疑...
    99+
    2023-06-20
  • html中id与name的区别有哪些
    本篇内容介绍了“html中id与name的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • html5中class与id有哪些区别
    这篇文章主要介绍了html5中class与id有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 区别:1...
    99+
    2024-04-02
  • css中id与class有什么区别
    本篇文章给大家分享的是有关css中id与class有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。css的基本语法是什么css的基本语法是:1、css规则由选择器和一条...
    99+
    2023-06-14
  • CSS中class与id有什么区别
    CSS中class与id有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Class 在程序中称“类”,同时在CSS中也书面语也叫“类”。在CSS样式中以...
    99+
    2023-06-09
  • css中class和id的区别
    css 中 class 和 id 的区别:用途:class 用于通用特征样式化,id 用于唯一元素标识。选择方式:class 用点符号(.),id 用哈希符号(#)。应用范围:class...
    99+
    2024-04-28
    css
  • document.getElementBy("id")与$("#id")有什么区别
    下面简单介绍下:第一个就是js中获取对象的方法,比较直接,如果一个页面有多个id,每次都要写这么长的document.getElementBy("id")复制代码 代码如下:docu...
    99+
    2022-11-15
    document.getElementBy $("#id")
  • CSS中class与id的区别是什么及怎么使用
    这篇文章主要介绍“CSS中class与id的区别是什么及怎么使用”,在日常操作中,相信很多人在CSS中class与id的区别是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • CSS中的id选择器与class选择器的区别是什么
    本篇内容主要讲解“CSS中的id选择器与class选择器的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中的id选择器与class选择器的区别是...
    99+
    2024-04-02
  • iOS中containsString和rangeOfString有什么区别
    在iOS中,containsString和rangeOfString都是用于判断字符串中是否包含某个子字符串的方法,但它们有一些区别...
    99+
    2023-10-22
    iOS
  • html中id和class有哪些区别
    这篇文章主要为大家展示了“html中id和class有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html中id和class有哪些区别”这篇文章吧。 ...
    99+
    2024-04-02
  • c++中=与==的区别
    c++ 中 = 与 == 的区别:= 为赋值运算符,用于变量赋值;== 为相等比较运算符,用于比较操作数是否相等。 C++ 中 = 与 == 的区别 在 C++ 中,= 和 == 是两...
    99+
    2024-04-26
    c++
  • HTML中name、id、class有什么区别
    这篇文章主要介绍了HTML中name、id、class有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在一个页面中,有许多的控件(元素或标签)。为了更方便的操作这些标...
    99+
    2023-06-08
  • python中/与//的区别
    python中“/”表示为浮点数的除法,其返回结果为浮点数;而“//”表示的是整数除法,其返回结果为整数。实例:print("6 // 4 = " + str(6 // 4))print("6 / 4 =" + str(6 / 4))输出结...
    99+
    2024-04-02
  • c++中::与.的区别
    冒号 (::) 用于访问全局命名空间或类的静态成员,而句点 (.) 用于访问类的实例成员。例如,std::cout 使用 :: 访问全局命名空间中的函数,obj.instancevar ...
    99+
    2024-04-26
    c++
  • iOS项目中version和build的区别是什么
    在iOS项目中,version和build是两个不同的标识,其含义和功能如下:1. Version(版本号):Version是用来标...
    99+
    2023-08-15
    iOS version build
  • Python中的 // 与 / 的区别
    通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如:  6 / 3 = 2 ; 6,3都是整数,那么结果也就是整数2;  6.0 / 3.0 = 2.0 ; 6.0,3.0是浮点数,那么结果也是浮点数2...
    99+
    2023-01-31
    区别 Python
  • APP测试中IOS和Android的区别是什么
    这篇文章主要介绍“APP测试中IOS和Android的区别是什么”,在日常操作中,相信很多人在APP测试中IOS和Android的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”APP测试中IOS和A...
    99+
    2023-06-05
  • CSS中id和class之间的区别是什么
    这篇文章给大家分享的是有关CSS中id和class之间的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   id和class之间的区别   id具有唯一性,clas...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作