iOS开发中子类指针指向父类指针

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/69660693

在iOS开发中我们知道父类指针可以指向子类对象,这是OC的多态。可以当我们将子类指针指向父类对象会发生什么呢?

代码:

LSString * str2 = [NSString stringWithFormat:@"2"];

NSLog(@"%@", str2);

LSString是继承自NSString的一个子类,当写出上面代码的时候会有一个警告:Incompatible pointer types initializing 'LSString *' with an expression of type 'NSString *'。这是因为str2指针类型和NSString *类型不相同,这是需要我们对后者进行一个强转,代码:

// 子类指针指向父类需要进行强转

LSString * str2 = (LSString *)[NSString stringWithFormat:@"2"];

NSLog(@"%@", str2);

这样就不会有警告了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一“技”之长

Objective-C中runtime机制的应用

        Objective-C是一种动态语言,所谓动态语言,是在程序执行时动态的确定变量类型,执行变量类型对应的方法的。因此,在Object-C中常用字...

9150
来自专栏陈满iOS

iOS开发·NSString字符串的各种基本操作,数值转换及衍生操作

但有时候,仅仅停留在这些基本操作还不能直接满足一些需求,这时候可以利用这些基本操作进行一些字符串的衍生操作。

33120
来自专栏Java3y

递归就这么简单

递归介绍 本来预算此章节是继续写快速排序的,然而编写快速排序往往是递归来写的,并且递归可能不是那么好理解,于是就有了这篇文章。 在上面提到了递归这么一个词,递归...

48580
来自专栏C#

C#二进制流的序列化和反序列化

1 public class BinaryHelper 2 { 3 /// <summary> 4 /...

28470
来自专栏BY的专栏

Objective-C Runtime 的一些基本使用

37680
来自专栏IMWeb前端团队

Promise的简单实现

本篇文章通过构建一个简单的Promise对象来了解如何做到异步获得数据。 使用方法 const fetch = function(url) { return...

23490
来自专栏前端那些事

递归函数-汉诺塔经典递归

前言 最近在读《JavaScript语言精粹》,对递归函数有了进一步的认识,希望总结下来: 递归是一种强大的编程技术,他把一个问题分解为一组相似的子问题,每一问...

38270
来自专栏菩提树下的杨过

objective-C中的Class(类类型),Selector(选择器SEL),函数指针(IMP)

今天在园子里看到了一篇牛文“Objective-C 2.0 with Cocoa Foundation--- 5,Class类型,选择器Selector以及函数...

25250
来自专栏Alice

IOS6学习笔记(三)

1.ARC空声明变量   使用ARC的另一个优势是所有未初始化的变量默认都是“空值化”的。这意味着像下面这样的声明使用ARC编译后指向的是空值(nil):  ...

19890
来自专栏ios 技术积累

Objective-C 数组筛选

想项目有可能会遇到按照一定条件对某一个数组进行筛选。 直接遍历数组,取符合条件的对象放到一个新数组效率可能不高。

12710

扫码关注云+社区

领取腾讯云代金券