- MAX/MSP SDK学习08:设置入口的冷热标签
Morgan歪比巴卜
MAX/MSPSDK学习MAX/MSP
1.默认所有的入口会显示为热标签(红色);2.若想让所有非最左入口都显示为冷标签,则需在ext_main函数中添加内置函数stdinletinfo:class_addmethod(c,(method)stdinletinfo,"inletinfo",A_CANT,0);3.若要指定某个入口为冷标签,则需自定义函数,步骤如下:S1:在ext_main函数中添加自定义函数:class_addmetho
- iOS用runtime给一个类动态添加方法class_addMethod
coder1003
介绍下class_addMethodruntime动态添加方法@paramcls要添加新方法的那个类@paramname要添加的方法@paramimp实现这个方法的函数,传的类型1,C语言写法:(IMP)方法名2,OC的写法:class_getMethodImplementation(self,@selector(方法名:))@paramtypes要添加的方法的返回值和参数叫typeencodin
- 关于class_addMethod(Class cls, SEL name, IMP imp, const char *types)
MAXZhangZZ
这个方法最后一个参数有点难理解,刚开始看就不知索然,其实,知道套路后,就明白了constchar*types这个是指imp函数的描述,比如v@:表示返回值为void的一个函数中间没有参数v对应void@对应id类型:表示函数例如voidsum(inta,intb)从左到右voidvintiinti因此改表示为v@:ii至于@:是OC中隐藏的东西事实上上边的那个函数应该是这样的voidsum(idx
- 消息动态解析
海牛骑士
在某些情况下你可能需要动态的提供方法,比如在oc中你声明某个属性为@dynamic类型,编译器就认为与这属性相关的方法会动态提供。你可以通过实现resolveInstanceMethod:和resolveClassMethod:动态的为selector提供实现方法,objective-c方法本质上就是一个带有至少两个参数(_self和_cmd)的c函数,你可以通过class_addMethod为类
- iOS消息转发机制
猪猪行天下
NSObject的一些方法+(BOOL)resolveClassMethod:(SEL)sel;+(BOOL)resolveInstanceMethod:(SEL)sel;这两个函数在运行时,没有找到SEL的IMP时就会执行,一个是类方法,一个是实例方法。这两个函数是给类利用class_addMethod添加函数的机会,如果实现了添加函数代码则返回YES,未实现返回NO。-(id)forwardi
- Runtime 对IMP进行操作的api源码解析
petyou
class_addMethod给一个类添加方法正常添加一个继承链中不存在的方法,结果能够正常使用如果这个类本身就有该方法的申明和实现则添加失败如果这个类本身仅仅有该方法的申明那么是可以添加成功的如果这个类本身仅仅有该方法的实现则会添加失败(预料之中,因为所谓申明仅仅是编译器的事,编译完也就没有.h的事了)如果这个类没有该方法,但是父类有呢?结果是父类不会影响到子类添加方法的结果,依然可以添加成功源
- 关于Method Swizzling的一点小探究
Juggie
在网上看到了一段swizzlemethod的代码,想起AFNetworking也有类似的写法,重点留意了一下。第一感觉是在64行执行过class_addMethod后,originalSelector和swizzledSelector应该都是指向同一个Implementation,为什么还要在70行再执行class_replaceMethod呢?MethodSwizzling的标准写法写了小dem
- Runtime 方法交换
跃文
Runtime基础使用场景-拦截替换方法(class_addMethod,class_replaceMethod和method_exchangeImplementations)class_addMethod(添加方法)class_replaceMethod(替换方法)method_exchangeImplementations(交换方法)交换方式一+(void)load{//获取两个类的方法Met
- Runtime | 动态添加方法
字符管理师
准备工作添加头文件并声明一个Person类并设置属性#import@property(nonatomic,strong)Persion*persion;代码演示///3.使用runtime来动态添加方法-(void)rylsj_AddMethod{class_addMethod([self.persionclass],@selector(run:),(IMP)runMethod,"v@:@");}
- 详讲Runtime方法交换(class_addMethod ,class_replaceMethod和method_exchangeImplementations)
春田花花幼儿园
前言最近在整理博客,发现自己之前写的关于Runtime拦截替换方法的一篇文章《12-Runtime基础使用场景-拦截替换方法(class_addMethod,class_replaceMethod和method_exchangeImplementations)》,大家还是很关注的,文章大家看完依然疑问,但是由于当时生产力不足和后续的种种原因,并没有补发文章。最近工作不忙,正好结合自己工作中遇到的R
- RunTime原理和使用
钎探穗
原理:消息转发:在一个实例里边使用resolveInstanceMethod方法,内部动态添加一个方法class_addMethod去实现。之所以这样实现,取决于OC方法的组成:SEL(方法名)IMP(是一个函数指针,对应方法实现)参数相当于一本书的目录,里边标题,对应页码,页码对应具体的模块内容在动态添加的方法里想要把原有方法传递的参数捕获到,以便自己使用,需要将自己动态添加实现的方法进行参数的
- iOS面试题总结2018年3月
小羊孩子
一、Runtime的消息转发机制1.动态方法解析备用接受者3.完整转发1.动态方法解析对象在接受到未知消息时,首先会调用所属类的类方法+resolveInstanceMethod:或者+resolveClassMethod:;在这个方法中,我们有机会为该未知消息新增一个“处理方法”。不过使用该方法的前提是已经实现了该“处理方法”只需要在运行时通过class_addMethod函数动态添加到类里面就
- iOS-Runtime之class_addMethod给类动态添加方法
MinggeQingchun
iOS-OCruntimeclass_addMethod
class_addMethod官方文档如下:/***Addsanewmethodtoaclasswithagivennameandimplementation.**@paramclsTheclasstowhichtoaddamethod.*@paramnameAselectorthatspecifiesthenameofthemethodbeingadded.*@paramimpAfunction
- ios 消息转发
zl520k
ios在类中,没有定义的函数,要走消息转发流程。如果不走消息转发流程,程序会奔溃。消息转发流程分四步调用。第一步:+(BOOL)resolveInstanceMethod:(SEL)sel,这个方法会调用,如果在这个方法中使用runtime中的class_addMethod这个方法,可以将没有定义的方法,进行动态增加。例如:下面的person类@interfacePerson:NSObject-(
- Runtime奇技淫巧之class_addMethod以及消息转发机制
蒲公英_
上回书说道,你和伍丽娟已经不可能了!我们也同时了解,虽然你的硬需求不能扩展,但是你可以努力奋斗,用你残缺的体魄通过不断累积方法走上人生巅峰,这......,就是我们今天的主题,但......,你还是个单身狗!我们之前说过过于Method的一些方法,并且充分说明了SEL,Method,IMP之间是何种关系,今天我们先来重新把有关于它常用的方法做一次梳理://添加方法BOOLclass_addMeth
- Objective C运行时(runtime)技术总结,好强大的runtime
weixin_30898109
前言:ObjectiveC的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/class_addMethod函数在运行时对函数进行动态替换或增加新函数(2)重载forwardingTargetForSelector,将
- JSPatch
小凡凡520
原理oc的运行时原理,Runtime实现1、class_addMethod:如果本类中包含一个同名的实现,则函数会返回NO。如果要修改已存在实现,可以使用method_setImplementation。2、class_replaceMethod:该函数的行为可以分为两种:如果类中不存在name指定的方法,则类似于class_addMethod函数一样会添加方法;如果类中已存在name指定的方法,
- iOS 方法交换
XPorter
交换类方法voidSwizzleClassMethod(Classc,SELorig,SELnew){MethodorigMethod=class_getClassMethod(c,orig);MethodnewMethod=class_getClassMethod(c,new);c=object_getClass((id)c);if(class_addMethod(c,orig,method_g
- 消息转发与NSProxy
liyanjun201
ios开发runtime
消息转发消息转发步骤调用resolveInstanceMethod:方法(或resolveClassMethod:)。允许用户在此时为该Class动态添加实现。如果有实现了,则调用并返回YES,那么重新开始objc_msgSend流程。这一次对象会响应这个选择器,一般是因为它已经调用过class_addMethod。如果仍没实现,继续下面的动作。调用forwardingTargetForSelec
- iOS用runtime给一个类动态添加方法 ---class_addMethod
gunmm
先介绍下class_addMethod这个fangfa/***Addsanewmethodtoaclasswithagivennameandimplementation.**@paramclsTheclasstowhichtoaddamethod.*@paramnameAselectorthatspecifiesthenameofthemethodbeingadded.*@paramimpAfun
- class_addMethod的详解
lvmaker
ios开发class_addMethod在运行时为类添加方法
Obj-C用起来真是各种happy,比如现在有这样一种情况:有一个类,我们希望它能响应一个消息(message),但是这个类没有相应的方法(method),而你又偏偏不能重写/继承这个类。这时我们可能会想到,能不能动态地给类添加一个方法呢?感谢Obj-C,仅需简单几步就能实现。先看一段代码#ifTARGET_IPHONE_SIMULATOR#import#else#import#import#en
- 消息转发与NSProxy
锦鲤跃龙
消息转发![这里写图片描述]
[email protected]消息转发步骤调用resolveInstanceMethod:方法(或resolveClassMethod:)。允许用户在此时为该Class动态添加实现。如果有实现了,则调用并返回YES,那么重新开始objc_msgSend流程。这一次对象会响应这个选择器,一般是因为它已经调用过class_addMethod。如果仍没实现,
- iOS中经常用到的方法详解
RhythmMaster
class_addMethod使用(官方文档不放了)class_addMethod(Classcls,SELname,IMPimp,constchar*types)举例:Person*p=[[Personalloc]init];class_addMethod([Personclass],@selector(printPerson),class_getMethodImplementation([Vi
- runtime用法
圣僧留步
在之前学习runtime的过程中,我发现方法交换有两种写法,一开始对对一种写法不太能理解,后来自己写demo来试验了一下以后就知道他是怎么回事了,其实这不是两种写法,准确的来说,只是这样写更严谨一点。在做试验之前,首先你得了解以下三个方法的具体作用class_addMethod(添加方法,如方法已经存在,则添加失败)class_replaceMethod(替换方法)method_exchangeI
- Objective C运行时(runtime)技术的几个要点总结
farawei
做个记录:http://www.cnblogs.com/gugupluto/p/3159733.html#aaaaaaaaaaaaaaaaaaa有点理解:运行时是程序运行的时候,而我们IDE编写程序的时候是编译环境;所以其相关的代码,要在程序运行起来的时候才可以看到效果。目录:(1)使用class_replaceMethod/class_addMethod函数在运行时对函数进行动态替换或增加新函数
- runtime
sellse
让你快速上手Runtime说说objcRuntime的一些妙用(class_addMethod,class_replaceMethod)关于iOSruntime,主要总结了大部分runtime函数,举例说明什么时候需要用到runtimeiOS开发教程之ObjcRuntime笔记详解Objective-C中的Runtime深入Objective-C的动态特性结合category工作原理分析OC2.0
- Runtime动态给属性添加方法
小苗晓雪
1.添加方法:class_addMethod(,,,)#import#include@interfaceFruit:NSObject@property(nonatomic,copy)NSString*name;@property(nonatomic,assign)CGFloatprice;@end@implementationFruit@endintmain(intargc,constchar*a
- 使用class_addMethod方法需要导入什么
温柔的熊
如果在oc文件中直接使用class_addMethod方法会报这个错误,Declarationof'class_addMethod'mustbeimportedfrommodule'ObjectiveC.runtime'beforeitisrequired。但是,发现并没有ObjectiveC.runtime这样的文件,所以无法import。后来发现,#import,添加这行代码就能使用class
- Runtime-动态创建对象以及其他使用方法
走停2015_iOS开发
创建一个名为QihongwangView的类,他是UIView的子类ClassnewClass=objc_allocateClassPair([UIViewclass],"QihongwangView",0);为该类添加一个名为repeat的方法class_addMethod(newClass,@selector(repeat),(IMP)repeatFuntion,"v@:");注册该方法obj
- class_addMethod实解
Miss_QL
闲来无事,整理了一下runtime的知识,发现方法交换里面有个不明白的点:class_addMethod这个方法的返回值到底怎么解释?因为测试了类方法和实例方法之后,发现返回的结果不一样,就很迷惑,在网上搜出来的结果越看越糊涂。。。后来第二天一早恍然大悟,原来是原理没搞清楚。1、问题展示先来码一下我走过的坑:(1)替换UIImage类的init方法#import"UIImage+Swizzle.h
- java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
- Java异常那些不得不说的事
白糖_
javaexception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
- utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
- JAVA Annotation之定义篇
周凡杨
java注解annotation入门注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
- tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
- Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linuxcapistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
- log4j的用法
Harry642
javalog4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
- mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oraclejave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
- Hessian 简单例子
antlove
javaWebservicehessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
- 数据库对象的同义词和序列
百合不是茶
sql序列同义词ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
- 使用Powermock和mockito测试静态方法
bijian1013
持续集成单元测试mockitoPowermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
- 精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle数据库plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
- 【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
- jquery-validation备忘
白糖_
jquerycssF#Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
- solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
- 多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
- 买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
- [军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
- dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
- Hadoop如何实现关联计算
datamachine
mapreducehadoop关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
- 用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
- 中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
- js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格js去掉所有空格js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
- SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
- 《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
- JQuery EasyUI 验证扩展
可怜的猫
jqueryeasyui验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
- 架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
- Jquery性能优化
r361251
JavaScriptjquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
- 在eclipse项目中使用maven管理依赖
tjj006
eclipsemaven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
- 中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l