2015-08-02 YuLongLi
首先我们创建一个class,添加如下成员变量
var list = Array<AnyObject>()
var name:String?
var i32 :UInt32?
var number :NSNumber?
var dict = Dictionary<String,AnyObject>()
我们分别通过Property和ivar来获取这些成员变量信息
-
property获取
var count:UInt32 = 0
var properList = class_copyPropertyList(self.classForCoder, &count)
for index in0 ... count-1 {
var item = properList[ Int(index)]
//获取变量名称
var proper_name = property_getName(item)
var properName = String.fromCString(proper_name)!
println("变量名称:" + properName )
//获取属性
var proper_attri = property_getAttributes(item)
var properAttri = String.fromCString(proper_attri)!
println( "变量属性:" + properAttri )
//获取属性value
var proper_attri_value = property_copyAttributeValue(item, proper_attri)
var properAttriValue:String? = String.fromCString(proper_attri_value)
println( "变量属性值:\(properAttriValue)" )
}
2.通过ivar获取
var count:UInt32 = 0
var ivar = class_copyIvarList(self.classForCoder, &count)
for index in0 ... count-1 {
var ivarName = ivar_getName( ivar[ Int(index) ] )
var ivarType = ivar_getTypeEncoding( ivar[ Int(index)])
var nEncodingType = String.fromCString(ivarType)!
var nName = String.fromCString(ivarName)!
println(" \(nName) \(nEncodingType) \(index)")
}
我们来看一下效果:
我们看到:通过property获取的少了UInt32的变量
然后我们把list设为private的再看一下效果:
我们看到property获取的结果中list木有了
微信扫一扫
关注该公众号
相关推荐
NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK ORACLE_HOME D:\app\Administrator\product\11.2.0\dbhome_1 ORACLE_SID HIS1 TNS_ADMIN D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN ...
之前写的python 实现excel 导表成lua工具,项目一直在用,基本实现所有需求
一种简单的方法来打印几乎所有方法,包括私有方法(支持arm64架构设备)
windowsdesktop-runtime-3.1.28-win-x64
乔瑟通用的“ JSON Web几乎所有内容”-使用本机加密运行时不依赖项的JWA,JWS,JWE,JWT,JWK实施的规格和功能以下规范由jose实现JSON... (单击以展开) ESM模块(导入): npm install jose@npm:jose-node-esm-runtim
Microsoft Windows Desktop Runtime实际上也就是.net framework软件,使用该软件能够解决电脑打不开某些软件的问题,如果用户打开某些软件提示缺少必要程序,则需要下载该框架。.NET Framework 是由 Microsoft 开发...
Compiled with problems: × ERROR in ./node_modules/vue-pdf/node_modules/pdfjs-dist/es5/build/pdf.worker.js (./node_modules/vue-pdf/node_modules/worker-loader/dist/cjs.js!./node_modules/vue-pdf/node_...
.NET 是一个免费的、跨平台的、开源的开发者平台,用于构建多种不同类型的应用程序。 .NET is a free, cross-platform, open-source developer platform for building many different types of applications. ...
解决方法 后来经过排查,发现是自己的写法有问题,在@Around的参数中我们使用的是runtime(),这里是有问题的! @Around: 环绕增强,相当于MethodInterceptor. 这里Around的value参数应该写的是上面的签名,而不是...
JOGL与Gradle JOGL的示例Gradle项目。 我发现很难找到如何使用JOGL为项目创建Gradle构建...gluegen-rt:2.3.1:natives-android-aarch64 "runtime " org.jogamp.gluegen:gluegen-rt:2.3.1:natives-android-armv6 "runtim
antlr-runtime-3.2.jar
物质运动 由Core Animation驱动的React性运动。 该库包括各种现成的交互。... // Store me for as long as the interactions should take effect. let runtime = MotionRuntime ( containerView : <...runtim
androidx-lifecycle-runtime-2.1.0.aar
安装顺序: libnvidia-container1_1.9.0-1_amd64.deb libnvidia-container-tools_1.9.0-1_amd64.deb nvidia-container-toolkit_1.5.1-1_amd64.deb nvidia-container-runtime_3.5.0-1_amd64.deb ...
zxing.java源码解析 zxing-spring-boot-starter 说明 基于 Google Zxing 的 Spring Boot Starter ...crossing”)是一个支持多种格式的条形码和二维码图形解析的开源Java类库,同时它也提供了其他语言的接口。...Runtim
在网上找了好久, 都没找到这个独立安装包, 这里跟大共享出来 Microsoft Visual C++ 2010 x86 Runtime - 10.0.40219 Microsoft Visual c + + 2010年可再发行组件包安装 Visual c + + 库运行在没有安装 Visual c + + ...
在安装winodw7系统安装Edge WebView2预览插件的时候,体统会提示“系统提示:无法定位程序输入点 GetProcessMitigationPolicy 于动态链接库 KERNEL32.dll 上”信息。后来查了资料说是由于我使用Edge WebView2版本过...
介绍 这个包提供了一个客户端接口来查询一个分布式 SQL 引擎。 它支持 Python>=3.6 和 pypy。 安装 $ pip install trino 快速开始 使用DBAPI接口查询Trino: import trino ... 这将查询system.runtim
邮递员运行时 这是一个低级库,用作Postman App和相关系统( , )中所有Collection运行和请求发送功能的基础。 如果您要执行集合,则应该使用Newman,这是非常低的级别。发展须知npm run test :运行运行... // runtim
关于 BiliChat 的详细信息请查阅 和目前实现了以下功能自动部署 Node.Js 运行库和安装 BiliChatGUI 修改 BiliChat 设置比较好看 (?) 的 GUI计划实现的特性弹幕表情的设置一些想说的做这个软件的因为看到了 的专栏 ...