今天被女朋友问到array[0]和[array firstObject]的区别,当时懵了一下,我的第一反应是当array为空的时候,前者会崩溃,而后者不会。
当然,事实也是如此。想想女朋友问出这种问题,也挺正常,因为她毕竟没有经历过早期的app开发。在早期的API中,firstObject方法是没有的(或者是不公开的),所以想要实现firstObject方法,就需要自己手动来写了:
id firstObject = array.count > 0 ? array[0] : nil;
本文对比了array[0]和[array firstObject]两种获取数组首元素的方法,指出当数组为空时,前者会导致程序崩溃,而后者则能安全返回nil。文章还介绍了在早期API中手动实现firstObject方法的方法。
今天被女朋友问到array[0]和[array firstObject]的区别,当时懵了一下,我的第一反应是当array为空的时候,前者会崩溃,而后者不会。
当然,事实也是如此。想想女朋友问出这种问题,也挺正常,因为她毕竟没有经历过早期的app开发。在早期的API中,firstObject方法是没有的(或者是不公开的),所以想要实现firstObject方法,就需要自己手动来写了:
id firstObject = array.count > 0 ? array[0] : nil;
3629
1081

被折叠的 条评论
为什么被折叠?