博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杂记 id和instancetype的区别
阅读量:6458 次
发布时间:2019-06-23

本文共 1005 字,大约阅读时间需要 3 分钟。

1.Using instancetype instead of id in appropriate places improves type safety in your Objective-C code

@interface MyObject : NSObject+ (instancetype)factoryMethodA;+ (id)factoryMethodB;@end @implementation MyObject+ (instancetype)factoryMethodA { return [[[self class] alloc] init]; }+ (id)factoryMethodB { return [[[self class] alloc] init]; }@end void doSomething() {    NSUInteger x, y;     x = [[MyObject factoryMethodA] count]; // Return type of +factoryMethodA is taken to be "MyObject *"    y = [[MyObject factoryMethodB] count]; // Return type of +factoryMethodB is "id"}复制代码

Because of the instancetype return type of +factoryMethodA, the type of that message expression is MyObject *. Since MyObject doesn’t have a -count method, the compiler gives a warning about the x line:

main.m: ’MyObject’ may not respond to ‘count’ However, because of the id return type in +factoryMethodB, the compiler can give no warning about the y line. Since an object of type id can be any class, and since a metho

转载地址:http://piizo.baihongyu.com/

你可能感兴趣的文章
linux中yum源安装dhcp,24.Linux系统下动态网络源部署方法(dhcpd)
查看>>
ASP.NET性能优化之分布式Session
查看>>
TaffyDB Introduction
查看>>
转载:《TypeScript 中文入门教程》 16、Symbols
查看>>
JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记4
查看>>
C#技术------垃圾回收机制(GC)
查看>>
漫谈并发编程(三):共享受限资源
查看>>
【转】github如何删除一个仓库
查看>>
Linux系统编程——进程调度浅析
查看>>
大数据Lambda架构
查看>>
openCV_java 图像二值化
查看>>
状态模式
查看>>
删除CentOS / RHEL的库和配置文件(Repositories and configuraiton files)
查看>>
DJANGO变动库的一次真实手动经历
查看>>
VC++获得微秒级时间的方法与技巧探讨(转)
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
MySQL my.cnf参数配置优化详解
查看>>
JavaNIO基础02-缓存区基础
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
190行代码实现mvvm模式
查看>>