首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在swift中获得类似int枚举的NSLog打印结果?

在Swift中,我们可以通过使用CustomStringConvertible协议来实现类似于int枚举的NSLog打印结果。CustomStringConvertible协议要求我们实现一个名为description的计算属性,该属性返回一个字符串,用于描述对象的内容。

下面是一个示例代码,展示了如何在Swift中实现类似int枚举的NSLog打印结果:

代码语言:txt
复制
enum MyEnum: Int, CustomStringConvertible {
    case case1
    case case2
    case case3
    
    var description: String {
        switch self {
        case .case1:
            return "This is case 1"
        case .case2:
            return "This is case 2"
        case .case3:
            return "This is case 3"
        }
    }
}

let myEnumValue = MyEnum.case2
print(myEnumValue)  // 输出:This is case 2

在上面的代码中,我们定义了一个名为MyEnum的枚举类型,它遵循了CustomStringConvertible协议。在枚举中,我们实现了description计算属性,根据不同的枚举值返回相应的描述字符串。

当我们使用print函数打印myEnumValue时,它会自动调用myEnumValue的description属性,并将结果打印出来。这样就实现了类似于int枚举的NSLog打印结果。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ai
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iotexplorer
  • 移动开发平台(MPS):https://cloud.tencent.com/product/mps
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

NSObject头文件解析 消息机制 Runtime解读 (一)

例子: 在类实现文件重写doesNotRecognizeSelector方法, 增加打印一行字, 注意自定义内容要写在调用父类方法前面, 否则调用父类方法就直接crash了, 不会继续执行后面的内容...可以用class_getVersion()来获得 info: 类信息 供运行期使用一些位标识 instanceSize: 该类实例变量大小 可以用class_getInstanceSize()来获得..., ivar, @"nihao"); //打印修改后成员变量NSLog(@"打印修改后成员变量值: %@", object_getIvar(aClass, ivar))...([aClass class], &count); //打印获取到方法个数 NSLog(@"方法个数: %d", count); //打印所有获取到方法名...NSLog(@"%d", count); //一次打印每一个接口名称 for (int i = 0; i < count; i ++) {

1.2K31

【IOS 开发】Objective - C 入门 之 数据类型详解

因此没有空类型变量, 变量不能转换成空类型, 但是空类型可以转换成任何引用类型; (2) 数据类型输出 NSLog()简介 : NSLog 是 Foundation 框架功能强大函数, 可以输出任何类型数据...day today, tomorrow, 注意 today tomorrow 两个变量取值只能是 day 枚举定义值; 枚举变量赋值 : 格式 variable = elm1 ; -- 示例 :...: 在 {} 得是枚举常量 或者 枚举元素, 该元素不是变量, 不能对齐进行赋值, 枚举值按照定义顺序 0, 1, 2, 3 以此类推; 枚举值本质 : 枚举值属于无符号整数, 可以使用 %u...占位符打印出来, 其值也能进行大小比较, 和四则运算; 枚举初值 : 枚举值可以在定义时候赋予一个初值; (4) 枚举示例 示例程序 :  /*****************************...为枚举变量赋值 */ today = Wednesday; tomorrow = Thursday; /* 打印枚举值 */ NSLog(@"today = %u", today);

1.2K20

窥探Swift编程之错误处理与异常抛出

Swift 2.0版本Swift语言对其错误处理进行了新设计,当然了,重新设计后结果使得该错误处理系统用起来更爽。...一、主动退出程序几种情况 在Objective-C,在单元测试时我们会使用断言,断言中条件满足时会产生异常,并打印出相应断言错误,在Swift也有几种产生异常语法。...在下方错误处理类似于switch-case语句,catch后边可以枚举匹配错误类型,具体如下所示:     ? (4)在枚举实现错误类型我们可以通过值绑定形式为错误添加错误代码和错误原因。...处理,在处理时,可以对错误原因进行打印,错误原因存储在error,具体操作和打印结果如下所示:       ?  ...为了观察确切文件名,我们需要在确切Swift源文件抛出上述异常。在特定Swift源文件,我们会看到下方输出结果。从下方输出日志,我们可以清楚看到文件名是一个详细文件路径。

2.2K50

【从零开始用Swift开发一个iOS应用(仿微博)】开篇-1. demo上手体验

二、代码实现 2.1 程序入口说明 Application/AppDelegate.swift文件@UIApplication注解,表示这个Class类是程序入口 ?...当编译器提示时候,再添加,会对语境有更好机会; 原因:闭包(类似于 OC block)需要使用self。 3.4 不需要; 除非多行代码语句写在同一行。...3.5 枚举类型 type对比 Swift:`type: .contactAdd` OC: UIButtonType.ContactAdd 3.6 监听方法对比 Swift: #selector,如果带参数...,不需要使用`:` OC: @selector 3.7 调试对比 Swift: print(xxx) 效率高,log不包含时间,用#function来打印当前执行方法 OC: NSLog,用__FUNCTION...__ 来打印当前执行方法 四、注释妙用 当我们想标注某段代码是需要refine,我们可以添加注释标签:TODO。

3.7K31

携程、阿里、京东、腾讯iOS春招面试过程以及面试题总结!

携程面试题 一面 请看下面一段代码static int a = 1; int main(){ int m = 2; char *n = NULL; l = (char *)malloc(100 * sizeof...;}); NSLog(@"aaaaaaa"); } 程序结果将输出 A. 死锁 B. 打印“aaaaaaa 222 Hello?” C. 打印“222 Hello? aaaaaaa” D....打印“” 二面 请说一说UITableView重用机制 请说一说你对Objective-Cproperty字段了解 请说一说你对iOS内存管理了解。ARC底层时如何实现?...函数闭包,如果要求闭包执行完后立刻改变函数某个变量值,应该如何实现? 如何实现一个类似于微信聊天界面的布局?...能讲一讲你对光栅化理解吗? 三面 对Swift和OC有什么看法? 能对Swift可选类型谈下你理解吗? 说一下快排伪代码和时间复杂度? 怎么判断两个链表是否相交? 怎么反转二叉树?

1.5K00

【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

, 复制后成为 NSString 不可修改; -- mutableCopy 方法 : 复制对象可变副本, 返回对象可变副本; 假如被复制对象不可修改 NSString, 使用该方法复制后为 NSMutableString..., 赋值后 是不可变, NSMutableString 接收一个 NSString 赋值, 如果在对赋值后属性执行 NSMutableString 操作, 就会报错; -- OCCat.h :...方法简介 :  -- "allObjects : " 方法 : 获取集合所有元素; -- "nextObjects : " 方法 : 获取集合下一个元素; (3) NSEnumerator 枚举器示例代码..., 赋值后 是不可变, NSMutableString 接收一个 NSString 赋值, 如果在对赋值后属性执行 NSMutableString 操作, 就会报错; -- OCCat.h :...方法简介 :  -- "allObjects : " 方法 : 获取集合所有元素; -- "nextObjects : " 方法 : 获取集合下一个元素; (3) NSEnumerator 枚举器示例代码

1.2K20

Swift系列一 - 数据类型

如果你习惯了OC语法,第一次接触Swift语法可能会有点抗拒,因为Swift语法有点怪。但如果你有前端基础,学Swift可能会有点吃力,如果你有C++基础可能会学得比较快点。...)") // 输出:hello world 以往OC打印变量使用NSLog("hello_%@",var),Swift使用\(变量) 二、分号 一句代码尾部可以省略分号(;) 多句代码写到同一行时必须用分号...值类型(value-type) 枚举(enum) Optional 结构体(struct) Bool、Int、Float、Double、Character String、Array、Dictionary...整数转换 在Swift不同类型之间是不能运算,否则编译器会报错 正确做法: let int1: UInt16 = 2_000 let int2: UInt8 = 1 let int3 = int1...也有此类型): 元组与列表类似,不同之处在于元组元素不能修改。

67420

iOS - 实现UINavigation全屏滑动返回(二)

,调用handleNavigationTransition:方法(刚才打印信息可以得知),现在问题就是target是谁?...机制 // 只能动态获取当前类成员属性,不能获取其子类,或者父类属性 unsigned int count = 0;// 拷贝出所胡成员变量列表 Ivar *ivars = class_copyIvarList...ivars + i); // 打印成员变量名字 NSLog(@"%s", ivar_getName(ivar)); // 打印成员变量数据类型 NSLog(@"%s",...ivar_getTypeEncoding(ivar)); } // 释放 free(ivars); 在打印我们找到了UIGestureRecognizer私有属性 _targets,是个数组...就是我们刚刚想要target呢,答案是是的 id target = self.interactivePopGestureRecognizer.delegate; 所以我们target就可以通过这种方式获得

1.2K40

ReactiveSwift源码解析(一) Event与Observer代码实现

因为代码比较简单,下方测试用例输出结果就不往上粘贴了。 ? 二、Swift枚举 因为今天我们要聊Event就是个枚举,所以我们先来回顾一下Swift枚举使用。当然还是依托于实例。...下方代码枚举是在我们之前聊Swift枚举主题中拿过来,并且做了相应修改。当然在Swift枚举以及结构体都是可以使用泛型,接下来我们就来好好看一下Swift强大而灵活枚举类型。...下方就是上述枚举使用与输出结果,如下所示: ? 三、ReactiveSwiftEvent实现 接下来我们就来分析一下ReactiveSwift框架Event枚举代码实现。...该事件所关联值为100,然后我们输出计算属性value、isTerminating、isCompleted计算属性值进行打印,具体打印结果如下所示。...从打印结果可以看出isTerminating为true,说明是终止事件,而isCompleted为false,则说明是非正常终止。 ?

2K100

汇编寄存器规则

# 汇编寄存器规则 在本章,您将了解到 CPU 使用寄存器,并研究和修改传入函数参数。您还将了解常见苹果计算机架构,以及如何在函数中使用它们寄存器。这就是所谓架构调用约定。...如果对使用硬件架构有疑问,可以在终端运行以下命令来获取计算机硬件架构: uname -m 在能耗要求很高移动设备( iPhone)上使用 ARM64 体系结构。...有时使用寄存器和断点很有用,以便获得内存还存在对象引用。例如,如果您想将前部 NSWindow 更改为红色,但是在代码没有对该视图引用,又不想重新编译任何代码怎么办?...首先,在 Swift 调试上下文内寄存器不可用。意味着你不得不获取到任何你想要数据,并使用 OC 调试上下文打印出传入 Swift 函数寄存器。..., two: Swift.Int, three: Swift.Int, four: Swift.Int, five: Swift.Int, six: Swift.Int, seven: Swift.Int

2.4K50

Swift

变量用var标识,常量用let标识 Swift对于空格敏感 Swift输出变量写法为\(变量/常量名) 在Swift,整形自己主动判断为Int,假设系统是32位系统,那么这个整形就是Int32,...假设是64位系统,那么就是Int64 假设须要特定整形数,则须要手动写上类型指定(:Int8) 在Swift浮点型默觉得double,假设想要float类型须要显示指定 在Swift不支持隐式转换...字符,除了数学符号,箭头和横线 字符串拼接能够直接用”+” “+”相当于C++运算符重载 元组:(概念来自关系型数据库) 数据库一条记录相当于一个元组,元组数据能够是不同类型 与结构体类似...与OC字典类似 更新字典key相应value值也能够用 .updateValue(newValue, forKey:key) :person.updateValue(“张三三”, forKey...} 依旧用元组遍历 : for (key, value) in person { } * 字典打印是无序 SwiftBool有两个值:true和false 分支语句

2K10

Objective-C属性(property)特性(attribute)

然而,即使不使用setter和getter,其他类也可以通过->来直接访问,: personA->name = @"123"; NSLog(@"personA->name:%@", personA...(Swift类似的「Computed Properties/计算属性」) 所以,在没有Objective-C2.0@property之前,我们几乎需要为所有的实例变量,手动写getter和setter...注意,基本数据类型(非对象类型,int, float, BOOL),默认值并不是strong,strong只能用于对象类型。 weak ARC新增特性。...(@"修改nameString后, nameCopy: %@; nameNonCopy: %@", testClass1.nameCopy, testClass1.nameNonCopy); 打印结果是...因此,在ARC下,assign就变成用于修饰基本数据类型(Primitive Type),也就是非对象/非指针数据类型,int、BOOL、float等。

1.9K30

swift4.0语法杂记(精简版)

let a = 10 let b = 12.5 print(a + Int(b)) 此时得到结果就是22。在swift,做类型转换时是将数据括起来,相当于swift结构体构造函数。 ?...static var courseCount : Int = 0 在类外通过类名访问类属性 Person.courseCount = 2 6、类构造函数 构造函数类似于OCinit方法。...十六、swift注释 在swift类似于paramg --mark写法是不可行。...十七、枚举 1、定义 在swift枚举使用是由enum关键字来创建枚举枚举所有成员都放在一对大括号里面。它为一组相关值定义一个共同类型。使用case关键字来定义一个新枚举成员值。...上面的代码在 Swift 3 打印 count 数是 4,在 Swift 4 打印 count 是 1。

15.1K90

Swift基础 枚举

Swift基础 - 枚举 翻译自:https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html 枚举为一组相关值定义了通用类型,并使您能够在代码以类型安全方式处理这些值...如果您熟悉C,您将知道C枚举为一组整数值分配相关名称。Swift 枚举要灵活得多,不必为每个枚举案例提供值。...与Swift其他类型一样,他们名字(CompassPoint和Planet)以大写字母开头。...您可以定义Swift枚举来存储任何给定类型关联值,如果需要,每个枚举情况下值类型可能不同。类似枚举被称为歧视联合、标记联合或其他编程语言变体。...在 Swift ,用于定义任一类型产品条形码枚举可能如下所示: enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String

6400

Swift 类和结构体

因此请使用UpperCamelCase这种方式来命名(SomeClass和SomeStructure等),以便符合标准 Swift 类型大写命名风格(String,Int和Bool)。...存储属性是被捆绑和存储在类或结构体常量或变量。当这两个属性被初始化为整数0时候,它们会被推断为Int类型。...在 Swift ,所有的结构体和枚举类型都是值类型。这意味着它们实例,以及实例中所包含任何值类型属性,在代码传递时候都会被复制。...结果就是两个完全独立实例碰巧包含有相同数值。由于两者相互独立,因此将cinemawidth修改为2048并不会影响hdwidth值。...一个引用某个引用类型实例 Swift 常量或者变量,与 C 语言中指针类似,但是并不直接指向某个内存地址,也不要求你使用星号(*)来表明你在创建一个引用。

1.2K40
领券