美文网首页
OC实现一个函数多返回值的两种途径

OC实现一个函数多返回值的两种途径

作者: a4a7cd7be20f | 来源:发表于2018-10-30 15:26 被阅读0次

在OC语言中如果你期望一个函数有多个不同类型的返回值,是不可能的。

eg: 代码写成这样,是不可能的

-(Bool,NSAttributedString*)getTailReplacedAttributedStringWithWidth:(double)width;

但是可以通过其他的途径来解决这个问题

一、对多返回值进行包装

将多个返回值,封装成一个数据模型,或者放到容器里面如NSdictionary、NSArray

-(NSDictionary*)getTailReplacedAttributedStringWithWidth:(double)width

{

//计算替换字符串的size,如果size.width>width,不进行末尾字符串替换

    NSMutableDictionary *resultDict = [[NSMutableDictionary alloc]initWithCapacity:0];

    NSNumber*numberObject = [[NSNumberalloc]initWithBool:YES];

    [resultDictsetObject:numberObjectforKey:@"numberKey"];

    NSAttributedString * attributedString = [[NSAttributedString alloc]initWithString:@"属性字符串"];

    [resultDictsetObject:attributedStringforKey:@"attributedStringKey"];

    return resultDict;

}

二、使用block

block严格意义上不能算上是返回值,但是能实现多返回值的效果

-(void)getTailReplacedAttributedStringWithWidth:(double)width

                                       complete:(void(^)(BOOLflag,NSAttributedString*resultString))completeBlock{

    NSMutableAttributedString * resultAttributedString = [[NSMutableAttributedString alloc]init];

    if(completeBlock) {

        completeBlock(YES,resultAttributedString);

    }

}

相关文章

  • OC实现一个函数多返回值的两种途径

    在OC语言中如果你期望一个函数有多个不同类型的返回值,是不可能的。 eg: 代码写成这样,是不可能的 -(Bool...

  • Swift中的函数和构造函数(一)

    函数 和oc中的函数一样, 代码实现 函数的定义格式 func 函数名(行参列表) -> 返回值 {代码实现}调用...

  • Swift(三 函数 闭包)

    第九章 函数 关于函数返回值为元组的情况下,打印字段值(多返回值函数的两种方式实现:1、在函数定义时,将函数的多个...

  • Unity3D与iOS通信

    unity3d调用iOS函数,实现传参以及得到返回值;C#: 在需要调用函数传参的时候调用即可 OC:建立一个OC...

  • Swift笔记<八>函数的基本使用

    函数的介绍 函数相当于OC的方法 函数格式func 函数名(参数列表) →返回值类型{代码块retuan 返回值}...

  • Julia快速入门(一)函数 字符串

    Hello World 几个简单函数 一个函数例子 函数快速定义 函数多返回值 字符串 字符串定义 两种字符串打印...

  • 03-函数

    函数的定义 隐式返回(Implicit Return) 返回元组:实现多返回值 函数的文档注释 注:参考: 参数标...

  • Swift基础 - 函数

    函数的格式func 函数(参数名:参数类型,.....) -> 返回值 { 代码实现} 函数返回值为空的三...

  • Swift-函数

    函数的定义与调用 无参数函数,有返回值(返回值类型String) 多参数函数,有返回值(返回值类型String) ...

  • GeekBand OC 4. 函数成员:方法

    C语言:全局函数 例如:NSLog 面向对象OC:成员函数(方法) 定义方法 -(实例方法)(返回值类型)函数名称...

网友评论

      本文标题:OC实现一个函数多返回值的两种途径

      本文链接:https://www.haomeiwen.com/subject/cscgtqtx.html