草庐IT

objc-category

全部标签

apple 为什么要改 objc_msgSend 的类型申明

原文:https://mikeash.com/pyblog/objc_msgsends-new-prototype.html总结:objc_msgSend类型申明改变的原因:让错误在编译的时候发生,而不是等到运行时。为什么有运行时错误:ABI的错配,调用方的ABI(对参数的传递)和接收方ABI(对参数的处理)错配了为什么错配:我传的是float,你把我当double了,浮点转成双精度浮点,这可不是和short转int单单高位补几个0就可以了为什么float转double了:C语言经常搞这种骚操作,毕竟处理数据的时候,用更高的精度有好处。怎么阻止float转double:可以把函数中的参数类型申

iOS的Category、Protocol、Delegate的简单使用

注:这是之前写的OC代码,搬到这里小记一下。现在swift是趋势,可自行转化,重在理解。运行环境语言:OCXcode:13.1演示图yanshi.gif代码使用Category分类可以在不创建子类的情况下,向已经存在的类添加新的方法分类的用途可以归结为以下几点:1.在不创建继承类的情况下实现对已有类的扩展。2.简化类的开发工作,例如,当一个类需要多个程序员协同开发的时候,Category可以将同一个类根据用途分别放在不同的源文件中,从而便于程序员独立开发相应的方法集合。3.将常用的相关的方法分组。4.在没有源代码的情况下可以用来修复BUG。MyClass.h#importNS_ASSUME_N

iOS的Category、Protocol、Delegate的简单使用

注:这是之前写的OC代码,搬到这里小记一下。现在swift是趋势,可自行转化,重在理解。运行环境语言:OCXcode:13.1演示图yanshi.gif代码使用Category分类可以在不创建子类的情况下,向已经存在的类添加新的方法分类的用途可以归结为以下几点:1.在不创建继承类的情况下实现对已有类的扩展。2.简化类的开发工作,例如,当一个类需要多个程序员协同开发的时候,Category可以将同一个类根据用途分别放在不同的源文件中,从而便于程序员独立开发相应的方法集合。3.将常用的相关的方法分组。4.在没有源代码的情况下可以用来修复BUG。MyClass.h#importNS_ASSUME_N

关于ios:Objective-C中的OBJC_EXPORT关键字是什么意思?

WhatdoesOBJC_EXPORTkeywordinObjective-Cmean?当我使用这个方法class_getName()时,我发现它是这样声明的:1**OBJC_EXPORT**constchar*class_getName(Classcls)OBJC_EXPORT是什么意思?如果你CMD点击符号,你会看到它不是关键字。OBJC_EXPORT定义为:1#defineOBJC_EXPORT OBJC_EXTERNOBJC_VISIBLE而OBJC_EXTERN是extern"C"或extern,这取决于你是分别编译C还是C。而OBJC_VISIBLE在Windows上是__decl

关于ios:Objective-C中的OBJC_EXPORT关键字是什么意思?

WhatdoesOBJC_EXPORTkeywordinObjective-Cmean?当我使用这个方法class_getName()时,我发现它是这样声明的:1**OBJC_EXPORT**constchar*class_getName(Classcls)OBJC_EXPORT是什么意思?如果你CMD点击符号,你会看到它不是关键字。OBJC_EXPORT定义为:1#defineOBJC_EXPORT OBJC_EXTERNOBJC_VISIBLE而OBJC_EXTERN是extern"C"或extern,这取决于你是分别编译C还是C。而OBJC_VISIBLE在Windows上是__decl