object c runtime的学习

Java RAG实战:从零构建检索增强生成系统 检索增强生成(RAG)是一种结合信息检索与大型语言模型(LLM)的技术范式,旨在通过从外部知识库中检索相关信息来增强生成式AI的回答准确性和事实依据。其核心原理是将非结构化文档(如PDF、Wiki)进行文本分割、向量化处理后存入向量数据库,当用户提问时,系统先进行语义检索,再将检索到的上下文与问题一同提交给LLM生成答案。这项技术的价值在于,它为大模型提供了实时、可验证的外部知识源,有效缓解了“幻觉”问题,并提升了在垂直领域(如技术支持、智能客服)的应用可靠性。在工程实践中,Java技术栈因其在并发处理、系 阅读详情
//
//  main.m
//  RuntimeFunctionApplication
//
//  Created by 千雅爸爸 on 16/10/7.
//  Copyright © 2016年 kodulf. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <objc/runtime.h>
#import "Person.h"
#import <objc/message.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //runtime的了解
        //runtime 是一套由c语言api组合成的runtime库,
        //runtime 会尽可能把代码的执行决策推迟到运行时
        //oc 是动态语言,oc代码最终都会转换成底层runtime的代码
        //[person setAge:10]
        //objc_msgSend(person,@selector(setAge:),10);
        
        //runtime的使用
        //动态获取/创建类
        //动态为一个类增加属性或方法
        //在程序运行时便利类中的实例变量,属性或方法
        //调换两个方法的逻辑实现(method swizzle)
        
        //比如说我们要统计用户的点击时间或者是用户的访问率
        
        //首先引入runtime的头文件,#import <objc/runtime.h>
        //创建一个类person,
        
        Person *person = [Person person];
        NSLog(@"%@",[person class]);
        
        //如何去利用runtime去动态的获取类中的实例变量:
        Class personClass = person.class;
        unsigned int outCount = 0;
        //遍历实例变量
        Ivar *ivarPtr =class_copyIvarList(personClass, &outCount);//新类型的指针变量
        for (NSInteger i=0;i<outCount;i++) {
            Ivar ivar = ivarPtr[i];
            NSLog(@"实例变量:%s",ivar_getName(ivar));//获取实例变量,
        }
        //遍历类中的属性
        objc_property_t *propertyPtr = class_copyPropertyList(personClass, &outCount);
        for (NSInteger i=0; i<outCount; i++) {
            objc_property_t property = propertyPtr[i];
            NSLog(@"类的属性:%s",property_getName(property));
        }
        
        //遍历对象方法:
        Method *methodPtr = class_copyMethodList(personClass, &outCount);
        for (NSInteger i=0; i<outCount; i++) {
            Method method = methodPtr[i];
            SEL selector = method_getName(method);
            NSLog(@"对象方法:%@",NSStringFromSelector(selector));
        }
        
        //oc消息发送时候的隐藏实现函数
        //首先导入#import <objc/message.h>
        //点击左侧里里面的文件夹标志下面的第一个项目名的蓝色图标,中间好像又一个a的字,找到buildsetting,搜索框输入objc,在preprocessing 里面
        //将enable strict checking of objc_msgSend Calls 设置为no
        //相当于告诉我们的编译器,不要去检查我们对雨objc_msgSend的方法的调用
        
        [person setAge:10];//这个是oc的消息的发送。
        NSLog(@"%@",person);
        //下面的和上面实现相同的功能,只是下面的是上面的底层实现而已
        objc_msgSend(person,@selector(setAge:),15);//如果没有将enable strict checking of objc_msgSend Calls 设置为no,那么会报错,说是需要0个参数,但是现在有3个参数
        NSLog(@"%@",person);
    }
    return 0;
}







各种AI的调试日记——辅助工作篇 记录使用各种AI(语言大模型)的心得和总结 阅读详情

相关推荐

MATLAB功率谱函数psd与pwelch的使用

在网上看到 clear; Fs=1000; n=0:1/Fs:1; y=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); Nfft=1000; window=hanning(100); noverlap=20; dflag='none'; [Pxx,f]=psd(y,Nfft,Fs,window,noverlap); figure plot(f,10*log10(Pxx)); xlabel('frequency/Hz');ylab

qq_41687938的博客 2万+

Objective-C 的 Runtime

前言 本文为通识性的文章,并且会不断更新,如果有什么地方不懂的或者有需要补充的以及不太正确之处可以留言,我会补上的,谢谢各位!~ OC是一门动态的语言,它将很多静态语言在编译和链接时期做的事情放到了运行时来处理。这样的动态语言优势在于:写代码时更具灵活性。 e.g. 我们可以把消息转发给我们想要的对象,或者随意更换一个方法的实现等。 OC的这种特性使得他不仅仅需要一个编译器,还需要一个运行时

小明的博客 514

xilinx 暑期学校项目(二) 通过HLS实现二维傅里叶变换(2Dfft)及图像数据读入读出方法

要进行维纳滤波,首先就是要将图像矩阵通过二维fft变换到频域。 但是hls_fft.h中只有一维fft的函数,因此我们采用对行逐行进行一维fft,再对列逐行进行一维fft来实现二维fft的效果。 文章目录自带的fft例程二维fft的实现数据的读入和读出读入读出维纳滤波操作 自带的fft例程 自带的fft例程中包括有如下四个函数 void dummy_proc_fe( bool direction, config_t* config, cmpxData in[FFT_LENGTH],

战斗果冻的训练中心 2329

[ObjectC]Runtime 运行时之一:类与对象

Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。 这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以

超越 4557

STM32F4用FSMC驱动AX58100 EtherCAT从站芯片,保姆级配置流程与避坑指南

本文详细介绍了STM32F4通过FSMC接口驱动AX58100 EtherCAT从站芯片的完整配置流程,包括硬件连接、时序优化、协议栈移植及TwinCAT主站集成。针对工业自动化场景,提供高性价比的实时控制解决方案,特别适合机械臂、CNC机床等精确同步应用,并分享关键调试技巧与性能优化方法。

weixin_27869497的博客 305

IC版图设计布局经验90条!

13 如果一个cell调用其它cell,被调用的cell的vssx,vddx,vssb,vddb如果没有和外层cell连起来,要打上PIN,否则通不过diva检查.尽量在布局低层cell时就连起来。48 在匹配电路的mos管左右画上dummy,用poly,poly的尺寸与管子尺寸一样,dummy与相邻的第一个poly gate的间距等于poly gate之间的间距。8 更改cell时查看路径,一定要在正确的library下更改,以防copy过来的cell是在其他的library下,被改错。

weixin_44606964的博客 910

Object-C Runtime 运行时

Runtime 运行时 参考文章:玉令天下的博客特酷吧南峰子的技术博客顾 鹏 Objective-C是动态语言,所以需要编译器的同时也需要一个运行时系统来动态创建对象、传递消息。在你需要的时候还能对其进行扩展,解决问题。Objective-C的Runtime是一个运行时的库(Runtime Library),主要使用C和汇编写的库,为C添加了面向对象的能力并创造了Objective-C。这个运行时系统就像一个操作系统一样:它让所有的工作正常运行。有动态类型(Dynamic typing),动态绑定

u013712343的博客 481

我的GIT练习ONE

Git 是一个分布式版本控制及源代码管理工具;Git 可以为你的项目保存若干快照,以此来对整个项目进行版本管理每一次的练习,都是对自身知识的巩固,以及对自身知识的一个测试。

是个非常热爱生活、乐观、奋斗、努力的逗比青年 8867

Objective-C runtime机制(1)——基本数据结构:objc_object & objc_class

前言 从本篇文章开始,就进入runtime的正篇。 什么是runtime? OC是一门动态语言,与C++这种静态语言不同,静态语言的各种数据结构在编译期已经决定了,不能够被修改。而动态语言却可以使我们在程序运行期,动态的修改一个类的结构,如修改方法实现,绑定实例变量等。 OC作为动态语言,它总会想办法将静态语言在编译期决定的事情,推迟到运行期来做。所以,仅有编译器是不够的,它需要...

无忘无往 7733

Windows 11 安装 OpenClaw(龙虾):不用WSL、不用虚拟机、启动、使用、停止、卸载

本文详解 Windows 11 原生安装 OpenClaw(龙虾)全流程,无需 WSL 或虚拟机。涵盖环境配置、安全警示、模型接入(如通义千问)及技能初始化。提供启动、文件自动化操作、停止与卸载的完整指南,并附常见认证过期解决方案。助您快速部署本地 AI 智能体,实现电脑操作自动化,提升工作效率。

寒水馨 · 轻量级技术文档 · hanshuixin.org 899

Rockchip eMMC寿命监控:SMART信息读取与预防性维护

擦写计数坏块数量温度使用时间。

小灰灰的博客 762

Objective-C runtime之运行时的基本特点(一)

作为一门动态编程语言,Objective-C 会尽可能的将编译和链接时要做的事情推迟到运行时。只要有可能,Objective-C 总是使用动态 的方式来解决问题。这意味着 Objective-C 语言不仅需要一个编译环境,同时也需要一个运行时系统来执行编译好的代码。运行时系统(runtime)扮演的角色类似于 Objective-C 语言的操作系统,Objective-C 基于该系统来工作。因此,

王中周的个人博客 2万+

基于 STM32 的乒乓球发球机控制系统设计与实现

乒乓球发球机是一种能够按照预设参数自动、连续发出乒乓球的训练设备。本系统以 STM32F103C8T6 为主控核心,通过控制实现球速调节、实现落点与旋转方向控制、实现出球节奏控制,并配合 OLED 显示与按键人机交互,实现速度、频率、落点、旋转四大参数的可调发球训练。

weixin_42300449的博客 209

object c 学习(一) : runtime

英语真心不怎样,  想补充一Object c 的语法方面的知识, 到底是读官方的文档呢,还是阅读其他中文的书籍呢? --------- 还是痛下决心,狂学英语好了. 因为在技术方面,英文不好真是寸步难行呀!!!!! 这里必须要采取一个策略: 搜集所有资料, 中英文结合着看. 1. object c 中的 runtime 是一个什么样的概念? 里面的解释:

deep_explore的专栏 3094

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Object-C runtime programming guide学习笔记

Messaging 向一个实例发消息,runtime使用的是objc_msgSend函数来发送的。 每一个class都有一个指针指向他的super class,有一个 dispatch table,指向每个方法的地址。 每一个实例(来自NSObject or NSProxy)都有一个指针isa,指向他的class. runtime通过向上回溯直到找到调用的方法,...

weixin_33720452的博客 69

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Objective-C Runtime

Runtime是什么? 运行时(Runtime)是指将数据类型的确定由编译时推迟到了运行时 Runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API 平时编写的OC代码,在程序运行过程中,其实最终会转换成Runtime的C语言代码,Runtime是Object-C的幕后工作者 Object-C需要Runtime来创建类和对象,进行消息发送和转...

baidu_40537062的博客 403

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【转】iOS学习——深入理解Objective-C的Runtime机制

Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和转发。下面通过分析Apple开源的Runtime代码(我使用的版本是objc4-646.tar)来深入理解Objective-C的Runtime机制。 Runtime数据结构 在Objective-C中,使用[receiv

chy305chy的专栏 1032

Objective-C Runtime整理学习

Objective-C Runtime整理学习1、引言2、简介3、与Runtime交互1、Objective-C源代码2、NSObject的方法3、Runtime的函数4、Runtime术语1、SEL2、id3、Class4、Method5、Ivar6、IMP7、Cache8、Property5、消息1、objc_msgSend函数2、方法中的隐藏参数3、获取方法地址6、动态方法解析7、消息转发1、重定向2、转发3、转发和多继承4、替代者对象(Surrogate Objects)5、转发与继承8、健壮的实例

烈马痴情葱的博客 1004

ios学习路线—Objective-C(Runtime类与对对象)

简介 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时能够更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工

Sunny博客 363

【iOS】——Runtime学习

iOS的Runtime,通常称为Objective-C Runtime,是一个C语言库,包含了很多底层的纯C语言API。,它是Objective-C语言动态特性的基石。这个系统在程序运行时提供了一系列强大的功能,允许我们在应用运行过程中动态地操作类和对象,执行诸如检查和改变对象、交换方法实现、动态添加方法或属性等操作。高级编程语言想要成为可执行文件需要先编译为汇编语言再汇编为机器语言,机器语言也是计算机能够识别的唯一语言,但是OC并不能直接编译为汇编语言,而是要先转写为纯C语言再进行编译和汇编的操作,

m0_73974920的博客 2735

OC底层学习-Runtime

OC底层学习-Runtime1. 概述2.Runtime之 isa指针2. 面试题 1. 概述 Objective-C是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同 Objective-C的动态性是由Runtime API来支撑的 Runtime API提供的接口基本都是C语言的,源码由C\C++\汇编语言编写 2.Runtime之 isa指针 要想学习Runtime,首先需要了解底层的一些常用的数据结构,比如isa指针 在arm64架构之前,isa就是 一个普通的指针,储存着Cla

yong_19930826的博客 1307

object-c runtime使用

最近在学习ios开发,尝试做个通讯录,使用了APAdress来读取系统的通信录,然后需要将通信录中的联系人转换为拼音并进行排序,最先想到的做法是取出APContact中的联系人名称,然后对这个名称进行排序,但这样做的话会导致整个排序代码职能给APContact用,如何使的这个排序代码可以给所有的类的用(此类中需要有特定的属性),这时可以用到object-c的运行时特性 通过iva

github_26248951的专栏 415

理解 Objective-C Runtime

当人们初学 Cocoa/Objective-C 时,Objective-C Runtime 是被忽略的特性之一。原因是 Objective-C(这门语言)很容易在几小时内就熟悉,新学 Cocoa 的人花费他们大部分的时间学习 Cocoa 框架和适应它是如何工作的。然而每个人至少应该知道一些 runtime 的工作细节,需要比知道编译器会把 [target doMethodWith:var1];  

Flying_in_the_world的专栏 2094

OC runtime学习笔记一

github Demo: https://github.com/lihei12345/OCRuntimeTest 参考资料:http://blog.youkuaiyun.com/colorapp/article/details/43735817 1. 直接使用命令行编译OC文件:clang -fobjc-arc -framework Foundation test.m -o test;使用

lihei12345的专栏 946

Runtime学习基础之isa指针

重要的事情说三遍: 重要提示:你要想学习并且学好Runtime,首先你要了解它底层的一些常用的数据结构,比如isa指针 重要提示:你要想学习并且学好Runtime,首先你要了解它底层的一些常用的数据结构,比如isa指针 重要提示:你要想学习并且学好Runtime,首先你要了解它底层的一些常用的数据结构,比如isa指针 首先问大家一个问题,如果问你对isa了解吗? 我估计你的答案基本就是: 实例对象的isa指向类对象,类对象的isa指向元类对象;当调用对象方法的时候,通过instance的isa找

Lucky_Deng的博客 1357

runtime学习笔记

文章目录前言阶段一 Runtime源码阅读Public Headers 前言 在苹果开源网站上可以下载到Runtime源代码。 之前通过网友的博客对Runtime有所了解,项目里也有所应用,但是对有些东西总是感觉模棱两可,所以没事的时候看看源码学习学习还是很有必要的。 下面就是我看源码和查阅资料进行学习整理的笔记。 阶段一 Runtime源码阅读 初次下载学习可能会感觉无从下手,就从“Public...

竹毛言己 714
上一篇: object c 非常强大的类的属性复制kcv键值码赋值
下一篇: Java中普通代码块,构造代码块,静态代码块区别及代码示例
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值