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

通过字符串名称或变量访问objective-c对象

好的,请提供需要完善的问答内容,我会尽力为您提供全面、完善的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Python3通过字符串访问与修改局部变量

    而如果使用co_varnames的方法,那么得到的就是所有局部变量名称,我们也可以在例子中额外定义一个self的成员变量: x = 0 class Obj: def __init__(self...并且需要注意的是,全局变量x自始至终都没有在局部变量中出现。那么既然我们可以通过这种方式分离出局部变量,或者是局部变量名称,那我们如何去调整或者修改这些局部变量呢?...而z的最终打印输出是1,这表明z的值确实没有受到对vars的变量修改的影响。那到底有没有办法可以通过字符串去修改局部变量呢(不同步到全局变量)?...而成员变量虽然是一个对象的属性,但是其操作方式跟全局变量globals是非常接近的,不像locals一样只读,具体示例如下: x = 0 class Obj: def __init__(self...而有时候我们又需要一些批量化的操作,比如批量化的创建或者修改局部、全局或者是成员变量,这样就需要我们首先要把所有的变量名存成字符串,在需要的时候再作为变量名去调用。

    55320

    Objective-C笔记

    方法调用都通过objc_msgSend进行调用,且实例和方法名称分别为前两个参数。...然而,大多数Objective-C通常不使用C语言风格的字符串。 反之,大多数框架把字符串传递给NSString对象。...因为这种字符串使用的非常频繁,Objective-C提供了一个助记符@可以方便地从常量值创建NSString对象。...实例化 实例化即创建对象Objective-C创建对象通过alloc以及init两个消息。alloc的作用是分配内存, init则是初始化对象。...不过在Objective-C 2.0引入了新的语法以声明变量为属性, 并包含一可选定义以配置访问方法的生成。属性总是为公共的,其目的为提供外部类访问(也可能为只读) 类的内部变量的方法。

    93040

    Objective-C中的内存管理

    OC中使用引用计数和垃圾回收来管理内存,在OC中为每个对象分配一个引用计数器,当对象刚刚被创建时其初始值为1,当有某段代码需要访问一个对象是时,会将该对象的引用计数器加1(通过retain来实现);当访问一个对象结束时...,会将该对象的引用计数器减1(通过release来实现);当计数器为0时,该对象占用的内存空间会被收回。...用NSString *str = @"ludashi";定义变量     ​    ​    ​    ​用上面的方法定义的字符串是常量字符串,他的retianCount为-1不定,不会随着retian...:37.240 Memory[2499:303] 传入的变量RetainCount = 3     ​Objective-C中得ARC(Automatic Reference Counting)     ​   ...块来代替;     ​    ​    ​(4).不能用开头new的名称来定义一个属性,除非你定义一个别的getter名称。     ​    ​     ​    ​

    80090

    插件,脚本和命令目录

    基础如下: 你会像往常一样编写JavaScript代码 使用桥接器,您可以从主机应用程序(在本例中为Sketch)从系统本身获取Objective-C对象 基本的Objective-C对象具有等同的JavaScript...(如字符串和数字),通常可以以与JS版本相同的方式使用 您可以像在JS中一样读取和写入自定义Objective-C对象的属性 您可以使用熟悉的JavaScript语法Objective-C方括号语法来调用自定义...当处理程序被调用时,它会传递一个上下文变量。这包含一些重要的属性,您可以使用它们访问您需要的对象。...var layer = selection[i] log('layer ' + layer.name + ' is selected.') } } Sketch中的所有插件都可以访问以下默认变量...通过编辑manifest.json插件文件夹中的文件,您可以自定义命令的名称,输入描述,甚至可以展开插件以定义多个命令。 有关更多信息,请参阅插件包。

    93280

    Swift基础 基础知识

    常量和变量(Constants and Variables) 常量和变量名称(如maximumNumberOfLoginAttemptswelcomeMessage)与特定类型的值(如数字10字符串...通过在常量变量名称后放置冒号,后跟空格,后跟要使用的类型名称来编写类型注释。...Swift使用字符串插值将常量变量名称作为占位符包含在较长的字符串中,并提示Swift将其替换为该常量变量的当前值。...Objective-C中最近的东西是能够从否则会返回对象的方法返回nil,nil的意思是“没有有效的对象”。然而,这仅适用于对象,不适用于结构、基本C类型枚举值。...一旦您确定可选内容确实包含一个值,您可以通过添加感叹号来访问其基础值(!)直到可选名称的末尾。感叹号有效地说:“我知道这个可选肯定有价值;请使用它。”

    15000

    【IOS开发高级系列】Lua与OC交互专题

    Lua类型自动转换成对应的Objective-C类型,反之亦然。 这意味着,如果你调用了需要NSString和NSInteger的某个方法,但传送了Lua字符串和Lua整数,Wax会为你搞定转换工作。...方法名称         你可能还注意到奇怪的方法名称“colorWithRed_green_blue_alpha”。要是你熟悉Objective-C,就知道方法名称可以有冒号。...Lua中的函数名称不能有冒号。为了补偿这个差异,凡是Objective-C中隔开方法名称的地方,在Lua中都换成下划线。...        你可以使用点.操作符,为任何Objective-C对象创建成员变量。...不像冒号:操作符(用于对Objective-C类/实例调用方法),点.操作符可以针对对象的Lua方面,动态创建成员变量(对象Objective-C方面对这些变量一无所知)。

    34520

    C Sharp(一)

    命名空间则是与某个名称相关联的一组类型声明。(在写 Objective-C 或者 Swift 时,是没有命名空间的概念,所以官方给出的最佳实践是使用前缀的方式来区分不同类型。)...类型由下面元素定义: 名称 保存数据成员的结构 一些行为和约束 比如,int 类型: 名称: int 结构: 4 字节 行为: 32 位整数 实例化类型 从模板创建实际对象的过程,就称为实例化该类型...通过实例化类型创建的对象,可以称为对象,也可以称为实例 C# 中,每个数据项都是某种类型的实例 数据成员和函数成员 像 short,long 等这样的类型称为简单类型,只能存储一个数据项。...这些数据项称为数组元素,通过索引来获取每个数组元素。C# 数组这一特征与 Objective-C 相同,与 JavaScript 的特征不同。... JavaScript 不同,C# 中的数值类型不具有布尔含义。

    1.6K30

    iOS工程师必看的 20 道 面试题

    反之,低级别的变量却可以定义在高级别的变量中。比如 public 的 class 中可以含有 private 的 Int。 Open 具备最高的访问权限。...Objective-C中,字符串,数组,字典,皆被设计为引用类型。 值类型相比引用类型,最大的优势在于内存使用的高效。值类型在栈上操作,引用类型在堆上操作。...通过Swift的let设置,使得这些数据达到了真正意义上的“不变”,它也从根本上解决了多线程中内存访问和操作顺序的问题。 设计成值类型还可以提升API的灵活度。...Swift中若要使用Objective-C代码,可以在ProjectName-Bridging-Header.h里添加Objective-C的头文件名称,Swift文件中即可调用相应的Objective-C...Swift文件中若要规定固定的方法属性暴露给Objective-C使用,可以在方法属性前加上@objc来声明。

    3.8K40

    iOS中动态更新补丁策略JSPatch运用基础一

    二、使用JavaScript代码向Objective-C中修改添加方法         JSPatch引擎中支持3中方式进行JavaScript代码的调用,分别是使用JavaScript字符串进行代码运行...方法的调用时,分为两种,一种是调用类方法,一种是调用类的对象方法。...调用类方法:通过类名打点的方式来调用类方法,格式类似如下,括号内为参数传递: UIColor.redColor() 调用实例方法:通过对象打点的方式调用类的实例方法,格式如下,括号内为参数传递: view.addSubview...(UIColor.colorWithRed_green_blue_alpha(0,0.5,0.5,1)) 对于Objective-C类的属性变量,在JavaScript中只能使用getter与setter...方法来访问,示例如下: label.setText("JSPatch") 提示:如果原Objective-C的方法中已经包含了_符号,则在JavaScript中使用__代替。

    87820

    更多关于CocoaScript目录

    ---- Sketch插件可以通过Mocha和CocoaScript实现,它允许您使用JavaScript编写的外部脚本使用Objective-C / Cocoa代码。...CocoaScript还包含一个桥梁,可让您通过JavaScript访问Apple的Cocoa框架。这意味着除了标准JavaScript库之外,您还可以使用许多精彩的类和函数。...访问Cocoa和Sketch API 您可以从CocoaScript访问所有Cocoa和Sketch API。 Objective-C属性的行为与在桥的JavaScript端应该一样。...Objective-C方法作为对象的不透明JavaScript代理的属性公开。 将选择器名称转换为JavaScript属性名称时采取以下步骤: 所有冒号都转换为下划线(最新的下划线是可选的)。...选择器的每个组件都连接成一个没有分隔的字符串

    1.4K60

    面经之《招聘一个靠谱的iOS》import CYLBlockExecutor.himport CYLBlockExecutor.himport CYLNSObject+RunAtDeallo

    实例变量一般通过“存取方法”(access method)来访问。其中,“获取方法” (getter)用于读取变量值,而“设置方法” (setter)用于写入变量值。...其实也可以把属性当做一种关键字,其表示: 编译器会自动写出一套存取方法,用以访问给定类型中具有给定名称变量。...(分别考虑类方法和实例方法) 每一个类对象中都一个方法列表,方法列表中记录着方法的名称,方法实现,以及参数类型,其实selector本质就是方法名称,通过这个方法名称就可以在方法列表中找到对应的方法实现...类方法: 类方法是属于类对象的 类方法只能通过对象调用 类方法中的self是类对象 类方法可以调用其他的类方法 类方法中不能访问成员变量 类方法中不定直接调用对象方法 实例方法: 实例方法是属于实例对象的...实例方法只能通过实例对象调用 实例方法中的self是实例对象 实例方法中可以访问成员变量 实例方法中直接调用实例方法 实例方法中也可以调用类方法(通过类名) 下一篇文章将发布在这里,会对以下问题进行总结

    1K100

    KVC原理与数据筛选

    从设计稿出发,提升页面搭建效率,亟需解决的核心问题有: key-value-coding:键值编码,一种可以通过键名间接访问和赋值对象属性的机制; KVC是通过NSObject、NSArray、NSDictionary...3.1 设置属性 3.1.1 查找访问器方法成员变量Objective-c】 + (DSKeyValueSetter *)_d_createValueSetterWithContainerClassID...DSKeyValueSetter对象已经生成,即确定了发送消息的对象object、访问器方法名SEL、访问器函数指针IMP、以及使用KVC时传入的Key和Value。...图3 KVC执行流程图 3.2 取值 3.2.1 查找访问器方法成员变量Objective-c】 + (DSKeyValueGetter *)_d_createValueGetterWithContainerClassID...技术类:明确是否为需求/技术层面引起的风险; 3.2.2 如上步骤没定位到访问器方法成员变量则走下面的流程生成对应的getter 【Objective-c访问器方法生成IMP - (id)initWithContainerClassID

    86720

    用模拟执行实现Objective-C代码自动化分析

    通过模拟执行,您可以选择要模拟执行的代码,并控制代码执行时的上下文信息。因为被模拟执行的代码无法访问运行它的操作系统的系统服务,所以几乎没有造成任何损坏的风险。...编写一个可以为您模拟执行功能的脚本将类似的功能提供给你,就好像您编写了该功能正在从库中调用它一样。这样你就可以在不打开调试器的情况下,通过不同的输入重复使用相同的函数。...图1显示了 emulateRange 与指令和调用hook一起使用,以跟踪GetProcAddress调用的返回值,并将全局变量重命名为它们将指向的Windows API的名称。...如果指定了字节串,则将其写入仿真器的内存,并将指针写入寄存器堆栈变量。...objc2_xrefs_helper的主要缺点是,如果选择器名称含糊不清,则意味着两个多个类实现了具有相同名称的方法,脚本无法确定引用的选择器在二进制文件中任何给定位置所属的类,所以修复交叉引用时不得不忽略这种情况

    87830

    iOS学习——iOS 整体框架及类继承框架图

    NSThread类使您可以创建多线程的程序,而各种锁(lock)类则为彼此竞争的线程在访问进程资源时提供各种控制机制。通过NSTask,您的程序可以分出一个子进程来执行其它工作进行进度监控。...用代码创建   通过继承UIView类间接继承UIView类实现自定义用户界面 同样的, UIKitk框架的类继承体系图如下图所示: ?   ...,这个数据结构是Objective-C对象的第一个成员变量,它就是isa指针。...其它类继承NSObject,访问Objective-C运行时系统的基本接口,这样其他类的实例可以获得运行时的能力。 ?...description方法允许对象返回一个内容描述字符串;这个方法的输出经常用于调试(“print object”命令),以及在格式化字符串中和“%@”指示符一起表示对象

    3.5K70

    Objective-c 知识总结 -- @property

    属性是指对象的特性。 属性声明? 属性声明是一种声明变量为属性的语法。 属性的实现? 声明了实例变量定义了相应的访问方法(存取方法)即为实现了属性。...属性访问方式 访问的方式有: 通过直接使用实例变量 使用编译器提供的点运算符,实现属性存取方法的调用,从而间接使用实例变量; 注意:id 类型的变量不能使用点操作符进行访问,原因是 Xcode 不知道是否存在对应的存取方法...* * @param property 属性 * * @return 是一个描述属性的特征的 C 字符串 * * @note 关于特征字符串的格式在 《Objective-C...* @return C 字符串形式的实例变量变量类型 * * @note 对于变量的可用类型查看《 Objective-C Runtime Programming Guide 》 Type...只要知道对象支持的某个方法的名称,即使该对象所在的类的接口中没有该方法的声明,你也可以调用该方法。

    1.4K31

    Objective-C Runtime编程指南(2)

    苹果官方文档Objective-C Runtime Programming Guide 六、类型编码 为了帮助运行时系统,编译器将字符串中每个方法的返回值和参数类型进行编码,并将字符串与方法选择器相关联...它使用的编码方案在其他上下文中也是有用的,所以通过@encode()编译器指令公开可用。 当给定类型规范时,@encode()返回一个编码该类型的字符串。...请注意,它们中的许多与用于存档分发的对象编码时使用的代码重叠。 但是,这里列出的代码在编写代码时不能使用,并且在编写不是由@encode()生成的代码时,可能需要使用代码。...您可以使用支持在类协议上按名称查找属性,以@encode字符串的形式获取属性的类型以及将属性的属性列表复制为C字符串数组的函数来访问此元数据。 已声明的属性列表可用于每个类和协议。...该字符串以T开头,后跟@encode类型和逗号,并以V结尾,后面跟着实例变量名称

    29710
    领券