自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

番薯大佬的专栏

快乐学习、快乐分享

  • 博客(1024)
  • 资源 (53)
  • 收藏
  • 关注

原创 第四章 Runtime应用:方法转换

swizzling应该只在+load中完成。 在 Objective-C 的运行时中,每个类有两个方法都会自动调用。 1、+load 是在一个类被初始装载时调用; 2、+initialize 是在应用第一次调用该类的类方法或实例方法前调用的。 两个方法都是可选的,并且只有在方法被实现的情况下才会被调用。swizzling应该只在dispatch_once中完成,由于swizzling改...

2018-07-06 23:52:55 250

原创 第四章 Runtime应用:方法添加

方法添加class_addMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp, const char * _Nullable types) 1、cls 被添加方法的类 2、name 添加的方法的名称的SEL 3、imp 方法的实现。该函数必须至少要有两个参数,self,_cmd 4、...

2018-07-06 23:46:31 256

原创 第四章 Runtime应用:关联对象(添加属性)

关联对象(Objective-C Associated Objects)给分类增加属性。关联对象void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)获取关联的对象id objc_getAssociatedObject(id obje...

2018-07-06 23:41:19 371

原创 第三篇 Runtime消息转发

发送消息时会在对应的类对象中搜索方法列表,如果找不到则会沿着继承树向上一直搜索知道继承树根部(通常为NSObject),如果还是找不到并且消息转发都失败了就回执行doesNotRecognizeSelector:方法报unrecognized selector错。消息转发到底是什么呢?接下来将会逐一介绍最后的三次机会。 1、动态方法解析 2、备用接收者 3、完整消息转发动态方法解析 ...

2018-07-06 23:31:57 1093

原创 第二篇 Runtime消息传递

一个对象的方法像这样[obj doing],编译器转成消息发送objc_msgSend(obj, doing),Runtime时执行的流程是这样的: (1)通过obj的isa指针找到它的class; (2)在class的method list找doing(直接在cache里找到,避免去遍历objc_method_list); (3)如果class中没到doing,继续往它的superc...

2018-07-06 22:30:26 133

原创 第一篇 Runtime介绍

Objective-C Runtime Objective-C Runtime Programming Guide Objective-C 是一个动态语言,这意味着它不仅需要一个编译器,也需要一个运行时系统来动态得创建类和对象、进行消息传递和转发。高级编程语言想要成为可执行文件需要先编译为汇编语言再汇编为机器语言,机器语言也是计算机能够识别的唯一语言。使用OC进行面向对象开发,而C...

2018-07-06 22:20:55 171

原创 APP提交审核-App Review

App Store 审核指南常见 App 拒绝情况App Review 支持

2018-07-06 16:24:28 2211

原创 导航栏控制器的渐变

效果图 实现步骤 1、设置导航栏视图控制器中的navigationBar背景图标[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];2、设置导航栏视图控制器中的navigationBar子视图的背景颜色ba...

2018-07-06 01:42:30 292

原创 修改bounds属性后的效果

UIView中的属性bounds默认的origin是x=0.0,y=0.0,且size中的宽高默认等于frame中size的宽高。当修改了bounds属性中的origin时,会影响到添加到其中的子视图frame中的origin;当修改了bounds属性中的size时,会影响到其自身frame中的size;// 初始化时的frameCGRectMake(20.0, 20.0, 200.0, 200...

2018-07-04 23:15:01 1975

原创 使用工具Hopper对iOSAPP反汇编

HopperHopper Disassembler是Mac上的一款二进制反汇编器,基本上满足了工作上的反汇编的需要,包括伪代码以及控制流图(Control Flow Graph),支持ARM指令集并针对Objective-C的做了优化。Hopper能把二进制文件中的所有函数名,方法名,代码逻辑结构,毫无遮掩的、一览无遗的反汇编。一、安装1、下载dmg文件(有免费试用版本,及购买版本)二、使用1、打...

2018-07-02 21:43:01 3649

原创 使用脚本对代码混淆

一、创建敏感字符文件1、在终端进入当前项目目录2、创建文件:touch codeConfusion.list3、文件添加到项目:Xcode-菜单栏-File-Add Files To 项目名称4、编辑内容,即写入需要混淆的函数名等,如:showMessageclearrandomTime二、创建混淆脚本文件1、在终端进入当前项目目录2、创建脚本文件:touch codeConfusion....

2018-07-02 21:05:23 1770

原创 使用工具Class-dump对iOSAPP逆向

Class-dumpClass-Dump是一款可以导出头文件的命令行工具,该程序用于检查Objective-C运行时信息存储在Mach-O文件中的头文件信息提取出来,并生成对应的.h文件。官网:http://stevenygard.com/projects/class-dump/一、安装1、下载class-dump安装文件2、双击打开安装3、选择复制文件:class-dump4、粘贴到目录:/硬盘...

2018-07-02 17:15:45 633

原创 clang命令编译OC成C++文件

效果图操作说明(终端命令操作)1、进入要编译文件所在目录2、编译命令:// 命令clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk 编...

2018-06-28 11:03:24 2181

原创 iOS连接外设硬件三种方式

2018-06-25 17:04:13 1787

原创 nodejs操作MySQL

学习网站:http://www.runoob.com/nodejs/nodejs-mysql.html注意事项:1、需要安装依赖包mysql(1)进入当前项目目录(2)初始化创建package.json文件:npm init -y(3)安装mysql包:npm install mysql(4)使用时导入包:var mysql = require('mysql');2、MySQL数据库的密码加密方式...

2018-06-24 23:59:18 250

原创 mac电脑显示器分辨率显示异常

我的mac电脑显示器突然分辨率显示异常,都被拉升了。以为重启电脑就可以恢复了,重启几次却异常依旧。于是打开"launchpad——系统偏好设置——显示器"进行分辨率的选择设置,发现分辨率选择"缩放"后有两个选项,两个分辨率设置过都没有达到预想的效果。我就想,没理由啊,现在的电脑不可能只有两种分辨率吧?找了下资料发现果不其然,原来是在选择"缩放"时,要同时按住键盘上的"option"键,或是"Alt...

2018-06-24 10:57:18 8789

原创 react-native网络请求fetch

效果图代码示例import React from 'react';import {View,Text,Button} from 'react-native';export default class NetworkRequest extends React.Component { constructor(props) { super(props); this.state...

2018-06-21 20:23:46 729

原创 免费API接口

随机推荐热门段子(包含文字、图片、GIF、视频): https://www.apiopen.top/satinApi?type=1&page=1随机推荐热门段子【神评版本】(包含文字、图片、GIF、视频): https://www.apiopen.top/satinGodApi?type=1&page=1随机推荐热门段子【神评版本】评论列表: https://www.apiopen...

2018-06-21 18:55:34 17198 1

原创 react-native弹窗Alert

效果图代码示例import React from 'react';import {View, Text, Button, Alert, AlertIOS} from "react-native";const title = "温馨提示";const message = '要下雨了,记得带伞'export default class AlertPage extends React.Com...

2018-06-21 18:38:48 6431

原创 react-native导航栏react-navigation

react-native使用react-navigation(https://reactnavigation.org/)进行导航功能开发。效果图使用安装react-navigation这个包,在终端使用如下命令(需要在项目项目中执行):方法1:yarn add react-navigation方法2:npm install --save react-navigation使用1、配置(1)在App....

2018-06-21 16:01:08 2690 1

原创 react-native使用谷歌浏览器调试

通过 谷歌浏览器Chrome调试React Native程序步骤一:先在模拟器上运行项目步骤二:选中模拟器,同时使用键盘上的组合键"Command + D"打开Developer Menu菜单,并单击选择”Debug JS Remotely"步骤三:在打开的谷歌浏览器里选择开发者工具:菜单——视图——开发者——开发者工具步骤四:在模拟器里刷新项目"Command + R"则会看到调试效果注意:要停...

2018-06-21 11:30:34 14119

原创 react-native开发工具Atom

Atom:https://atom.io/Atom插件:https://atom.io/packageshttps://nuclide.io/docs/quick-start/getting-started/其他插件:(1)浏览器浏览功能:open-in-broser(2)分页展示html页面效果:atom-html-preview(3)文件路径补全:autocomplete-path(4)文档化...

2018-06-20 12:38:54 609

原创 mac中的MySQL事务和索引和存储过程

一、事务事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!1、在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。2、事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。3、事务用来管理 ...

2018-06-20 12:24:13 479

原创 mac中MySQL操作数据表

数据表简单操作(注意:语句后要有分号)1、显示某个数据库中的所有表:show tables; 2、显示数据表的结构:desc 表名; 示例:desc personTable;或:show columns from 表名;示例:show columns from personTable;3、创建数据表:(1)设置主键primary key唯一性:create tabel 表名(字段名称 字段类型, ...

2018-06-20 12:16:40 2862

原创 mac中MySQL操作数据库

1、启动或关闭数据库服务方法:Launchpad-系统偏好设置-MySQL-Start MySQL Server/Stop MySQL Server检查是否已启动:ps -ef | grep mysql2、连接数据库(终端)命令:mysql -u root -p注:回车后输入登录密码3、数据库简单操作(注意:语句后要有分号)(1)创建数据库:create database 数据库名称 示例:cr...

2018-06-20 12:02:39 1215

原创 苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置

苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置,首先要做好如下的准备:第一:数据的备份;第二:保证正常的wifi连接;第三:有线的鼠标键盘连接;具体恢复操作步骤:步骤一:电脑启动时,按下键盘组合键(option + command + R,或alt + command + R);然后显示器屏幕上会显示小地球,且出现倒计时;步骤二:倒计时结束后,出现macOS实用工具,选择第四个...

2018-06-17 22:38:43 79673 1

原创 react-native数据缓存AsyncStorage

react-native中主要使用AsyncStorage进行数据缓存操作,其实现原理是key-value的形式。主要功能有:保存(修改)、删除(删除指定值,删除所有值)、读取。效果图代码示例import React from 'react';import {View, Text, TouchableOpacity, Alert, AsyncStorage, StyleSheet} from '...

2018-06-14 16:32:10 2919 2

原创 动态库与静态库

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 一、静态函数库1、静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a,如:libHelloWorld.a;2、静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中;3、静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;4、静态函数库改变了,程序...

2018-06-14 10:35:27 238

原创 mac 电脑使用mysql异常处理

在终端执行命令时,报错,如下所示:bogon:~ herman$ mysql -u root -p-bash: mysql: command not found解决方法:百度搜索到的解决方案貌似都是复制别人家的,但到了我这没有效果,我是这样解决的,步骤如下:1、查看安装路径:硬盘/usr/local/mysql2、检查是否已启动:ps -ef | grep mysql3、配置路径(1)打开配置文...

2018-06-12 22:49:54 306

原创 svn项目源码管理中文件忽略设置

设置方法:选中需要设置的文件-右击鼠标右键-选择Ignore-确定。如下图所示:

2018-06-12 15:05:10 518

原创 react-native学习——SVN管理项目源码

使用svn管理跨平台开发源码时,有些文件可以设置成忽略文件无须上传。1、.watchmanconfig(路径:项目名称-.watchmanconfig)2、yarn.lock(路径:项目名称-yarn.lock)3、node_modules目录(路径:项目名称-node_modules)4、build目录(路径:项目名称-ios-build,或:项目名称-android-build)忽略设置见示例...

2018-06-12 15:02:19 1169

原创 SYAlertView弹窗视图

SYAlertView自定义弹窗子视图UI根据UI设计需求,自定义各种样式的弹窗子视图:* 自定义UI及样式* 自定义显示动画* 编辑控件自适应键盘高度效果图代码示例1、导入头文件#import "SYAlertView.h"2、实例化SYAlertView *alertView = [[SYAlertView alloc] init];alertView.isAnimation = YES;3...

2018-06-08 17:26:55 314

原创 使用boundingRectWithSize字符串高度的计算

使用boundingRectWithSize计算字符串的高度。示例代码:NSString *message = @"字符串高度的计算";CGFloat height = [message boundingRectWithSize:CGSizeMake(320.0f, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attribute...

2018-06-06 15:49:20 2788

原创 使用递归方法获取某个视图的所有子视图

使用递归方法获取某个子视图的所有子视图,并有层次的打印出来。代码示例// 子视图UIView *view0 = [[UIView alloc] initWithFrame:CGRectMake(10.0, 10.0, 10.0, 10.0)];[self.view addSubview:view0];//UIView *view1 = [[UIView alloc] initWithFra...

2018-06-05 23:12:56 1302

原创 项目中改变Info.plist位置后,报错The file “Info.plist” couldn’t be opened because there is no such file

在项目中改变了Info.plist文件的位置后,即把Info.plist文件放到新建的目录文件夹后,运行时,报错error: could not read data from '/Users/zhangshaoyu/Desktop/DemoCamera/DemoCamera/Info.plist': The file “Info.plist” couldn’t be opened because ...

2018-05-22 16:55:05 2150

原创 react-native组件ScrollView

效果图代码示例import React, { Component } from 'react';import { Dimensions, StyleSheet, View, Text, Alert, TouchableOpacity, Image, Button, ScrollView} from 'react-nativ...

2018-05-22 15:38:38 3013 1

原创 react-nativere触摸组件TouchableNativeFeedback

效果图示例代码import React, { Component } from 'react';import { StyleSheet, View, Text, Alert, TouchableNativeFeedback} from 'react-native';import TouchableHighlightPage from "./Toucha...

2018-05-18 09:55:00 1047

原创 react-native触摸组件TouchableHighlight

效果图代码示例import React, { Component } from 'react';import { StyleSheet, View, Text, Alert, TouchableHighlight} from 'react-native';type Props = {};export default class TouchableH...

2018-05-17 17:04:59 1387

原创 react-native触摸组件TouchableOpacity

效果图代码示例import React, { Component } from 'react';import { StyleSheet, View, Text, TouchableOpacity, Alert} from 'react-native';type Props = {};export default class TouchableOpa...

2018-05-17 16:45:59 4916 1

原创 react-native开发异常处理——xrun:error:active developer path does not exit

调用命令react-native run-ios时报错,如下图所示:根据提示,xcrun运行命令的开发者路径不存在。估计应该是我重新安装了新版本的Xcode导致与原来设置的路径不一致,于是调用命令sudo xcode-select --switch Xcode.app实际路径 重新设置。设置成功后,再次调用命令react-native run-ios运行成功。...

2018-05-17 15:12:53 343

DemoNSUserdefault

iOS研发中数据缓存UserDefault的使用(Demo+文档)

2016-04-17

DemoSqlite

iOS研发中数据缓存sqlite、FMDB、LKDBHelper的使用(Demo+文档)

2016-04-17

DemoKeychain

iOS研发中数据缓存keychain的使用(Demo+文档)

2016-04-17

DemoCoreData

iOS研发中数据缓存coreData的使用(Demo+文档)

2016-04-17

DemoArchivedCoding

iOS研发中数据缓存archiver归档的使用(Demo+文档)

2016-04-17

SQLite关系型数据库的使用

iOS研发中数据缓存SQLite的使用

2016-03-26

LKDBHelper数据库的使用

iOS研发中数据缓存LKDBHelper的使用

2016-03-26

keychain的使用

iOS研发中数据缓存keychain的使用

2016-03-26

FMDB数据库使用

iOS研发中数据缓存FMDB的使用

2016-03-26

coreData使用

iOS研发中数据缓存coreData的使用

2016-03-26

Archiver归档的使用

iOS研发中数据缓存archiver归档的使用

2016-03-26

DemoMVVM架构模式

iOS开发中常用到的技术架构为MVC,但也有用到MVVM。两者主要体现在VM将业务相关逻辑进行了封装,减轻了Controller的负担。

2016-03-02

Demolimit输入限制

在iOS开发中,常会遇到输入限制的情况。本文件档整理了常用到的输入限制,如数字输入限制,长度限制等。定义的方法既有是在代理方法中使用的,也有在通知方法中使用。

2016-02-15

DemoTimeDate

iOS开发中常用到的时间类处理封装,包括各种转换格式。如NSDate转成NSString,或NSString转成NSDate,等。

2016-01-07

小方块输入框

自定义方块输入框,类似于微信支付密码的小方块输入框

2015-11-28

CollectionView的使用

UICollectionView的使用范例,即瀑布式列表的使用。

2015-11-26

iOS移动开发框架

iOS移动开发根视图开发框架设置,Demo中包括抽屉样式,tabbar样式

2015-11-04

iOS移动开发AES加解密

iOS移动开发中使用到的AES加解密技术,使用AES256位加密,解密。

2015-11-04

iOS移动开发MD5加密

iOS开发中常用到的字符串进行MD5加密,区分32位大小写加密,16位大小写加密

2015-11-04

DemoKVO_KVC

KVO即Key-Value Observing,称为键值观察者。是一种编程设计模式,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。 KVC即Key-Value Coding,称为键值编码,它是一种可以直接通过字符串的名字(key)来访问类属性的机制。

2014-09-03

DemoTargetDev

一个项目多个target,通过配置不同的信息,类似多个app。

2019-02-13

demoHitTest

子视图超出父视图范围时,子视图交互也能实现响应事件。

2018-11-08

DemoSignature

使用UberSignature实现手写签名。简单易用,接口API少而简,可以设置位置和大小,也可以设置画笔颜色。

2018-07-26

ViewDeck抽屉菜单

使用第三方框架ViewDeck在项目中设置抽屉式菜单。即设置中间视图控制器,左侧视图控制器,以及右侧视图控制器。或上、下视图控制器。

2017-09-19

RESideMenu抽屉视图

使用第三方框架RESideMenu在项目中设置抽屉式菜单。即设置中间视图控制器,左侧视图控制器,以及右侧视图控制器。

2017-09-19

DemoTablePageAndFrame

计算拖动时的页码以及自动加载

2017-04-18

DemoMKWebView

web view使用的优化,使用MKWebView替换UIWebView

2016-09-23

licecap录制gif软件

录制gif软件

2016-09-09

Mac中jenkins的使用

使用jenkins进行自动化构建

2016-08-23

DemoAnimation

动画效果的实现操作

2016-08-01

DemoNetwork

iOS原生网络请求,使用session,或connection方式

2016-07-24

DemoEmailSMS

iOS APP应用中打电话,发短信,发邮件功能的实现

2016-07-15

DemoThread

多线程使用示例,包括thread,operation,GCD。

2016-07-14

DemoRecognizer

手势操作UIGestureRecognizer,或UITouch

2016-07-09

DemoNSTimer

NSTimer计时器的使用,启动,停止等操作。

2016-07-08

DemoImageTableView

自定义cell中使用添加多个图片并自适应cell高度(类型于电商平台的商品评价添加图片)

2016-07-04

DemoIceRequest

iOS开发中,使用ZeroC ICE进行网络请求。

2016-05-12

DemoRecorder

录音以及音频的播放操作处理。

2016-04-29

DemoiflyMSC

使用科大讯飞进行语音书写。

2016-04-28

DemoPlist源码文档

iOS研发中数据缓存plist的使用(Demo+文档)

2016-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除