- RunTime 之深入理解load和initialize
点滴86
load和initialize都是NSObject的类方法NSObject.h声明如下+(void)load;+(void)initialize;NSObject.mm实现如下+(void)load{}+(void)initialize{}可以看到默认都是空实现。先看一下load方法的调用1.jpg在Objective-C源码中看一下load_images的实现,在objc-runtime-new
- iOS 源码解析 - Runtime篇 (3 消息转发)
雨三楼
objc-runtime开源地址消息转发在开启消息转发之前,先来看看定义在NSObject.h中的这五个方法://阶段一+(BOOL)resolveClassMethod:(SEL)sel;+(BOOL)resolveInstanceMethod:(SEL)sel;//阶段二-(id)forwardingTargetForSelector:(SEL)aSelector;//阶段三-(NSMetho
- iOS开发进阶(唐巧)读书笔记(二)
墨隐于非
第三部分:iOS开发底层原理1、Objective-C对象模型1.1isa指针NSObject.h部分代码:NS_ROOT_CLASS@interfaceNSObject{Classisa;}objc.h部分代码:typedefstructobjc_class*Class;typedetstructobjc_object{Classisa;}*id;每个对象都有一个名为isa的指针,指向该对象的类
- performSelector最全讲解
Cwwng
1、明确方法所在位置分别在NSObject.h、NSRunloop.h、NSThread.h三个类中,是不是很神奇。(其中在NSRunloop.h、NSThread.h文件中都是NSObject的分类)位置1.jpeg位置2.jpeg位置3.jpeg2、在NSObject.h中的方法1、-(id)performSelector:(SEL)aSelector;2、-(id)performSelect
- ios NSObject.h 详解
致在路上的我们
原文地址:http://blog.csdn.net/zeng_zhiming/article/details/70225456加载及初始化类运行时加载类或分类调用该方法,每个类只会调用一次+(void)load;类实例化使用前需要先初始化,一个类调用一次,如果子类没有实现该方法则会调用父类方法+(void)initialize;load和initialize区别在于:load是只要类所在文件被引用
- 关于PerformSelector方法
xing_xing
对象方法(位置NSObject.h)-(id)performSelector:(SEL)aSelector;-(id)performSelector:(SEL)aSelectorwithObject:(id)object;-(id)performSelector:(SEL)aSelectorwithObject:(id)object1withObject:(id)object2;对象categor
- NSObject.h
陆宝宝
一NSObject类从.h看,Object-C有两个NSObject,一个是NSObject类,一个是NSObject协议。其中,NSObject类采用了NSObect协议。NSObject是大多数类的基类,但并不是所有的类都继承于它,比如NSProxy类。NSObject点进去:@interfaceNSObject{ClassisaOBJC_ISA_AVAILABILITY;}NSObject只
- NSProxy
Rumbles
干嘛用的?为什么是不是继承与NSObject?查看NSObject.h发现苹果有一个协议cocoa框架中的基类不止NSObject一个,还有NSProxy这样的类存在两者都实现了协议@protocolNSObject-(BOOL)isEqual:(id)object;@property(readonly)NSUIntegerhash;@property(readonly)Classsupercla
- OC和Swift混合开发(含Pod私有库的相互引用)
凯司机
环境Xcode12.4,Swift:5.0概述:该文档主要介绍OC和Swift混合开发相互调用,包括3大类情况和12种具体情形。三大类情况:1.主工程内的混合互调,2.主工程和Pod三方库之间的混合互调,3.Pod三方库和其他Pod三方库之间的混合互调。十二种情形:1.主工程内的OC调用主工程内的OC:#import"NSObject.h"导入头文件直接调用。2.主工程内的OC调用主工程内的Swi
- 关于load和initialize,《深入剖析load和initialize方法》
文明的博客
iOS技术
在Objective-C中,NSObject是根类,而NSObject.h的头文件中前两个方法就是load和initialize两个类方法,本篇文章就对这两个方法进行详细、深入的剖析。就像Application有生命周期回调方法一样,在Objective-C的类被加载和初始化的时候,也可以收到方法回调,可以在适当的情况下做一些定制处理。而这正是load和initialize方法可以帮我们做到的。+
- NetworkController的使用
dadalan
iphone
CreateanewHeaderfilebygoingintoFile->NewFile->C->HeaderFile.CallitNetworkController.hPastethisin:#import"NSObject.h"@classNSString,NSTimer;@interfaceNetworkController:NSObject{struct__SCDynamicStore*_
- NSObject.h
想聽丿伱說衹愛我
版本:iOS13.5NSObject.hruntime其他方法通道NSObject的协议@protocolNSObject//两个NSObject的对象是否相等//会先判断两对象的哈希值是否相同//再判断对象地址是否相同//关于equal与hash详见最下面的引用-(BOOL)isEqual:(id)object;//对象的哈希值@property(readonly)NSUIntegerhash;
- NSObject.h头文件详解
天天想念
版本:iOS9.2#ifndef_OBJC_NSOBJECT_H_#define_OBJC_NSOBJECT_H_#if__OBJC__#include#include@classNSString,NSMethodSignature,NSInvocation;//协议定义部分@protocolNSObject-(BOOL)isEqual:(id)object;//首先判断两个对象是否类型一致,再判
- NSObject.h
ShenYj
@protocolNSCopying-(id)copyWithZone:(NSZone*)zone;@end@protocolNSMutableCopying-(id)mutableCopyWithZone:(NSZone*)zone;@end#pragmamark-归档协议@protocolNSCoding-(void)encodeWithCoder:(NSCoder*)aCoder;//归档-
- iOS - 对象, 类, 元类
felix6
[toc]参考对象,类,元类objc_class的结构基础知识NSObject//NSObject在NSObject.h中的定义:@interfaceNSObject{Classisa;//相当于structobjc_class*isa}isa见《isa指针》id//id在objc.h中定义:typedefstructobjc_object*id;id是structobjc_object*的别名,
- NSObject源码探究
madaoCN
前言NSObject对于OC开发者再熟悉不过了,阅读各大书籍,被灌输的概念就是NSObject是大部分类的基类(比如NSProxy就不是,但是它实现了NSObject协议)我们探究的大致有Foundation/NSObject.h和objc/NSObject.h和objc/runtime.h和objc/objc.h这几个文件,SoLetsstartit.Foundation/NSObject.pn
- 《52个有效方法》笔记3——探究runtime
Wang66
前言Objective-C是一门动态性语言,它动态性质的根源就在于runtime,OC也因runtime而强大。类和对象的数据结构我们来看看NSObject.h中NSObject类的定义:@interfaceNSObject{ClassisaOBJC_ISA_AVAILABILITY;}可以看到NSObject有个Class类型的isa属性,那这个Class类型是什么呢?我们跳入Class查看:/
- OC类的定义
熊妹妹
本文通过阅读runtime代码来分析NSObject。我们都知道NSObject是oc继承的跟类,提供一些通用的方法。从定义上看到NSObject满足NSObject协议,NSObject协议定义一些基础方法。把NSObject.h用clang-rewrite-objc转成c++代码会发现NSObject的定义#ifndef_REWRITER_typedef_NSObject#define_REW
- cocos creator和Objective-C互调用
良辰岁月
本文为ios开发环境下js和obc相互调用的例子。一、js调用ocjsif(cc.sys.isNative&&cc.sys.os==cc.sys.OS_IOS){letret=jsb.reflection.callStaticMethod("AdMaster","showAd:title:","有志者事竟成","淡定");}oc建一个AdMaster文件,继承NSObject.h文件+(BOOL)
- OC对象的本质
一叶知秋0830
本次讲解的很多内容都涉及到objc的源码,有兴趣的可以去下载最新版本的objc4源码。1.OC对象的内存布局1.1一个NSObject对象占多少内存?我们平时开发中说用到了绝大多数的类都是以NSObject作为基类。我们进入NSObject.h文件可以看到NSObject类的定义如下:@interfaceNSObject{Classisa;}我们将OC代码转成c/c++代码后可以看到,NSObje
- Objective-C 对象内存模型
devlcd
Objective-C是一门面向对象的程序设计语言,它的对象模型是基于类来建立的。我们可以在这里下载最新的runtime源码,当前最新版本为objc4-709.tar.gzObjective-C中的对象NSObject是Objective-C中的基类,NSObject定义在objc4-709/runtime/NSObject.h中:@interfaceNSObject{ClassisaOBJC_I
- oc归档与解档(序列化和反序列化)
西门淋雨
Foundation框架的归档功能将对象存储转换为二进制序列的过程成为归档、打包或编码,逆变换称为解档、解码或对象还原。可以使用NSKeyedArchiver和NSKeyedUnarchiver完成对象的归档和解档操作,而他们都是抽象类NSCoder的子类。所有可以归档的对象都必须要适用于协议NSCoding。协议NSCoding在Foundation/NSObject.h中定义,NSObject
- 元类(meta class)
起个名字想破头
元类(metaclass),这个名字想必很多人都听过,网上也有很多关于元类的介绍,今天我就按照自己这两天的理解来简单探讨一下这个玩意,有误之处还望指出。首先,下载objc源码,源码地址:https://opensource.apple.com/tarballs/objc4/打开链接后会发现有很多版本,我直接下载的最新版(709版本)认识NSObject1.打开objc工程的NSObject.h,找
- 得到App 逆向分析学习过程
洪哥
先导出所有头文件,慢慢看./class-dump-S-s-H/Users/hz/Desktop/得到/Payload/LuoJiFM-IOS.app/LuoJiFM-IOS-o~/Desktop/DeDaoimage.png发现里面网络请求是用的DataService这个类来处理的#import"NSObject.h"#import"UIAlertViewDelegate.h"@classNSSt
- runtime面试题
圆圆和方方
1.你使用过Objective-C的运行时编程么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?NSObjCRuntime.h/NSObject.h/message.h/objc-api.h/objc-auto.h/objc-exception.h(异常操作)/objc-sync.h/objc.h(基本功能)/runtime.h(主要功能在runtime.h中)
- ios 模型对象创建
誰的青春卟迷茫
创建一个类,继承NSObject.h文件#import@interfaceTestModel:NSObject@property(nonatomic,copy)NSString*icon;@property(nonatomic,copy)NSString*name;-(instancetype)initWithDic:(NSDictionary*)dict;+(instancetype)model
- objc源码分析及相关原理
junhg
深入理解objc的功能莫过于理解objc的源码,最新源码objc下载地址。NSObject结构分析NSObject结构定义在NSObject.h文件中,通过查看其定义知其含有一个Class类型对象,其结构定义为@interfaceNSObject{ClassisaOBJC_ISA_AVAILABILITY;}///AnopaquetypethatrepresentsanObjective-Ccla
- iOS 封装拨打电话
张天奇天张
创建类方法继承自NSObject.h文件+(NSString*)GetDialNumber:(NSString*)phoneNumber;.m文件+(NSString*)GetDialNumber:(NSString*)phoneNumber{NSMutableString*str=[[NSMutableStringalloc]initWithFormat:@"telprompt://%@",ph
- NSURLSessionDownloadTask 加MBProgressHUD的简单应用
我爱吃豆芽
新建工具类继承于NSObject.h中//正在下载typedefvoid(^downLoading)(longlongbytesWritten,floatprogress);//下载完成之后要走的方法typedefvoid(^comlated)(NSString*filepath);@interfacedownLoad:NSObject//重写初始化方法-(instancetype)initWit
- NSObject的load和initialize方法
ch32053
在Objective-C中,NSObject是根类,而NSObject.h的头文件中前两个方法就是load和initialize两个类方法,本篇文章就对这两个方法做下说明和整理。概述Objective-C作为一门面向对象语言,有类和对象的概念。编译后,类相关的数据结构会保留在目标文件中,在运行时得到解析和使用。在应用程序运行起来的时候,类的信息会有加载和初始化过程。其实在Java语言中也有类似的过
- eclipse maven
IXHONG
eclipse
eclipse中使用maven插件的时候,运行run as maven build的时候报错
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
可以设一个环境变量M2_HOME指
- timer cancel方法的一个小实例
alleni123
多线程timer
package com.lj.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer extends TimerTask
{
private int a;
private Timer timer;
pub
- MySQL数据库在Linux下的安装
ducklsl
mysql
1.建好一个专门放置MySQL的目录
/mysql/db数据库目录
/mysql/data数据库数据文件目录
2.配置用户,添加专门的MySQL管理用户
>groupadd mysql ----添加用户组
>useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户
3.配置,生成并安装MySQL
>cmake -D
- spring------>>cvc-elt.1: Cannot find the declaration of element
Array_06
springbean
将--------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3
- maven发布第三方jar的一些问题
cugfy
maven
maven中发布 第三方jar到nexus仓库使用的是 deploy:deploy-file命令
有许多参数,具体可查看
http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
以下是一个例子:
mvn deploy:deploy-file -DgroupId=xpp3
- MYSQL下载及安装
357029540
mysql
好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址
- ios TableView cell的布局
张亚雄
tableview
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:[indexPath row]]];
CGSize itemSize = CGSizeMake(60, 50);
&nbs
- Java编码转义
adminjun
java编码转义
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final Strin
- Tomcat 配置和spring
aijuans
spring
简介
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。
Server.xml -- tomcat主
- Java打印当前目录下的所有子目录和文件
ayaoxinchao
递归File
其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。
import java.io.File;
/**
* @author Perlin
* @date 2014-6-30
*/
public class PrintDirectory {
public static void printDirectory(File f
- linux安装mysql出现libs报冲突解决
BigBird2012
linux
linux安装mysql出现libs报冲突解决
安装mysql出现
file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686
- jedis连接池使用实例
bijian1013
redisjedis连接池jedis
实例代码:
package com.bijian.study;
import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoo
- 关于朋友
bingyingao
朋友兴趣爱好维持
成为朋友的必要条件:
志相同,道不合,可以成为朋友。譬如马云、周星驰一个是商人,一个是影星,可谓道不同,但都很有梦想,都要在各自领域里做到最好,当他们遇到一起,互相欣赏,可以畅谈两个小时。
志不同,道相合,也可以成为朋友。譬如有时候看到两个一个成绩很好每次考试争做第一,一个成绩很差的同学是好朋友。他们志向不相同,但他
- 【Spark七十九】Spark RDD API一
bit1129
spark
aggregate
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
//测试RDD的aggregate方法
object AggregateTest {
def main(args: Array[String]) {
val conf = new Spar
- ktap 0.1 released
bookjovi
kerneltracing
Dear,
I'm pleased to announce that ktap release v0.1, this is the first official
release of ktap project, it is expected that this release is not fully
functional or very stable and we welcome bu
- 能保存Properties文件注释的Properties工具类
BrokenDreams
properties
今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数调整带来困难。所以要解决这个问题。
&nb
- 读《研磨设计模式》-代码笔记-外观模式-Facade
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 百度百科的定义:
* Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,
* 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面
*
* 可简单地
- After Effects教程收集
cherishLC
After Effects
1、中文入门
http://study.163.com/course/courseMain.htm?courseId=730009
2、videocopilot英文入门教程(中文字幕)
http://www.youku.com/playlist_show/id_17893193.html
英文原址:
http://www.videocopilot.net/basic/
素
- Linux Apache 安装过程
crabdave
apache
Linux Apache 安装过程
下载新版本:
apr-1.4.2.tar.gz(下载网站:http://apr.apache.org/download.cgi)
apr-util-1.3.9.tar.gz(下载网站:http://apr.apache.org/download.cgi)
httpd-2.2.15.tar.gz(下载网站:http://httpd.apac
- Shell学习 之 变量赋值和引用
daizj
shell变量引用赋值
本文转自:http://www.cnblogs.com/papam/articles/1548679.html
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
需要给变量赋值时,可以这么写:
- Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)
dcj3sjt126com
javajdk
Java SE 第一讲:
Java SE:Java Standard Edition
Java ME: Java Mobile Edition
Java EE:Java Enterprise Edition
Java是由Sun公司推出的(今年初被Oracle公司收购)。
收购价格:74亿美金
J2SE、J2ME、J2EE
JDK:Java Development
- YII给用户登录加上验证码
dcj3sjt126com
yii
1、在SiteController中添加如下代码:
/**
* Declares class-based actions.
*/
public function actions() {
return array(
// captcha action renders the CAPTCHA image displ
- Lucene使用说明
dyy_gusi
Lucenesearch分词器
Lucene使用说明
1、lucene简介
1.1、什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者googleDesktop那种拿来就能用,它只是提供了一种工具让你能实现这些产品和功能。
1.2、lucene能做什么
要回答这个问题,先要了解lucene的本质。实际
- 学习编程并不难,做到以下几点即可!
gcq511120594
数据结构编程算法
不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解。作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦。
1、确定目标
学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到
- Java面试十问之三:Java与C++内存回收机制的差别
HNUlanwei
javaC++finalize()堆栈内存回收
大家知道, Java 除了那 8 种基本类型以外,其他都是对象类型(又称为引用类型)的数据。 JVM 会把程序创建的对象存放在堆空间中,那什么又是堆空间呢?其实,堆( Heap)是一个运行时的数据存储区,从它可以分配大小各异的空间。一般,运行时的数据存储区有堆( Heap)和堆栈( Stack),所以要先看它们里面可以分配哪些类型的对象实体,然后才知道如何均衡使用这两种存储区。一般来说,栈中存放的
- 第二章 Nginx+Lua开发入门
jinnianshilongnian
nginxlua
Nginx入门
本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:
nginx启动、关闭、重启
http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html
agentzh 的 Nginx 教程
http://openresty.org/download/agentzh-nginx-tutor
- MongoDB windows安装 基本命令
liyonghui160com
windows安装
安装目录:
D:\MongoDB\
新建目录
D:\MongoDB\data\db
4.启动进城:
cd D:\MongoDB\bin
mongod -dbpath D:\MongoDB\data\db
&n
- Linux下通过源码编译安装程序
pda158
linux
一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档
二、linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /b
- WEB开发编程的职业生涯4个阶段
shw3588
编程Web工作生活
觉得自己什么都会
2007年从学校毕业,凭借自己原创的ASP毕业设计,以为自己很厉害似的,信心满满去东莞找工作,找面试成功率确实很高,只是工资不高,但依旧无法磨灭那过分的自信,那时候什么考勤系统、什么OA系统、什么ERP,什么都觉得有信心,这样的生涯大概持续了约一年。
根本不是自己想的那样
2008年开始接触很多工作相关的东西,发现太多东西自己根本不会,都需要去学,不管是asp还是js,
- 遭遇jsonp同域下变作post请求的坑
vb2005xu
jsonp同域post
今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段
$mi_id = htmlspecialchars(trim($_GET['mi_id ']));
$mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));
贴出我前端代码片段:
$.aj