- 博客(71)
- 资源 (7)
- 收藏
- 关注
原创 Mybatis 运行Generator,针对字段类型为text等会默认产生XXXXWithBlobs的问题
默认情况下会在Mapper.xml中产生XXXWithBlobs如果不需要的话可以修改generatorConfiguration.xml,里面的table加属性,如
2018-08-13 19:23:20
3450
原创 Mac Rootless机制
mac系统下的Rootless机制,让我们在root权限下也不能随心所欲的读写所有路径了,特殊情况下我们需要关闭Rootless时,可尝试如下操作: 1. 重启按住 Command+R,进入恢复模式,打开Terminal。 2. 键入命令 csrutil disable 3. reboot Rootless机制是对抗恶意程序的最后防线,除非特殊需要时我们才将其关闭,否则保持开启状态.如...
2018-08-09 17:51:22
1643
原创 dealloc不调用的原因
1. ViewController 中的有NStimer,在ViewController消失前没有将NStimer销毁,导致ViewController的引用计数不为0.2.在Block或者delegate中有循环引用情况。解决方法:__weak ViewController *weakSelf = self;...
2018-04-25 16:54:20
805
原创 Mac go开发环境配置的坑
运行项目报错gopath set to GOROOT has no effectgopath的路径与GOROOT不能一样,如我的gopath为usr/local/goGOROOT的路径也为usr/local/go改下gopath路径即可如usr/local
2018-04-20 11:20:34
874
原创 xcode This app could not be installed at this time.
If you importing a custom framework, make sure custom framework->bundle-id is not same as currentAppProject->bundle-id. If you are not sure then simply change the bundle-id of current project.
2018-03-29 09:52:39
2704
原创 iOS sdk工程中引用sdk工程
两个sdk工程A和B,想在sdkA工程中引用sdkB工程,如图在sdkA工程中整体将sdkB工程拉进去,然后在A工程中选择Add Files to “YZAdvertiseSDK”,将ProtocolBuffers_ios.xcodeproj导入。...
2018-03-23 15:51:57
1803
转载 iOS 应用程序启动过程及原理总结
序言 当用户点击应用图标之后,应用就开始启动。应用启动完成后,就会展示一系列的视图,和用户进行各种各样的交互(如滑动、点击)。当用户退出应用后,该应用就无法和用户进行交互。这一过程就体现了一个应用的生命周期(从启动到退出)。这里只介绍应用程序的显示部分。 在介绍应用启动过程及原理之前,先来了解一些概念以及其作用。1、UIApplica
2018-01-31 16:38:14
3920
原创 SEL和IMP
SEL:类成员方法的指针,但是不同于C语言中的函数指针,函数指针直接保存了方法的地址,但是SEL只是方法编号。IMP:一个函数指针,保存了方法的地址。每一个继承于NSObject的类都能自动获取runtime的支持,在这样的一个类中,有一个isa指针,指向该类定义的数据结构体,这个结构体是由编译器编译时为类创建的(需要该类继承于NSObject,在编译的时候,编译器自动为程序中
2018-01-26 18:02:29
670
原创 野指针与空指针
野指针只要一个对象被释放了,我们就称这个对象为“僵尸对象”,当一个指针指向僵尸对象,我们就称这个指针为“野指针”,只要给野指针发送消息就会报错。空指针 nil为了避免给野指针发送消息会报错,一般情况下,当一个对象被释放掉后,我们会将这个对象的指针设置为空指针。因为在oc中给空指针发送消息是不会报错的。
2018-01-24 15:10:18
582
原创 变量的分类
局部变量,全局变量,实例变量,成员变量,静态变量,属性变量。头文件:@interface ViewController : UIViewController{ //成员变量(属于类内部,所以不用生成set和get方法) NSArray *array1;}//属性变量@property (nonatomic,strong) NSArray *array2
2018-01-19 17:15:57
931
原创 存储类关键字
auto :修饰局部变量,分配在栈上(既然在栈上,说明它如果不初始化那么值就是随机的),平时定义局部变量时就是定义的auto,只是省略了auto关键字而已。 static :可修饰局部变量也可修饰全局变量。如果局部变量用static修饰时为静态局部变量,它只能在函数内部使用但是一直占据存储空间的变量。(静态局部变量占用内存时间长可读性差,因此,除非必要,尽量避免使
2018-01-19 16:32:53
827
原创 关于const对于指针的限制问题
int a=10,b=20; int * const p = &a; 无法使p指向其他地址p=&b; 这样操作是不允许的*p=20; 可以这样操作 const int *p = &a; p可以指向其他地址p=&b; 可以操作
2018-01-11 15:25:45
359
原创 iOS 内存管理机制
alloc 与 init 理解MyClass *myObj = [[MyClass alloc] init]; => MyClass *myObj = [MyClass alloc]; myObj = [myObj init];alloc 分配了内存给对象,让他不释放,并且把地址返回给指针。但是这块内存不能使用,因为没有被正确的初始化。init即是对分配的这块内存进行初始化。[
2018-01-08 18:29:21
600
原创 oc 点语法与java 点语法
很多高级语言都有点语法,能使这种语言方便上手快,oc和java中也都有点语法,但他们的含义不太一样。写一个java点语法的demo public class Student{ public int age;} public class Test{ public static void
2018-01-03 16:34:26
2020
原创 ffmpeg 的那些坑
在编译支持ffmpeg命令行的静态库时遇到了很多坑,总结修改如下: 1. 修改ffmpeg.c的main函数,因为一个程序不能有俩个main函数,我们可以改成ffmpeg_main, 2.修改exit_program(int)函数,这个函数是清理资源用的,但是在里面调用了退出进程的函数exit,导致每次执行ffmpeg命令程序都会闪退。将exit函数注释掉
2017-12-21 17:54:42
6853
原创 ios ffmpeg编译支持命令行的静态库文件
脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script 在命令行执行命令: sh build-ffmpeg.sh用这个脚本自动在github中把ffmpeg源码下到本地并开始编译,编译好后在当前目录生成了FFmpeg-iOS文件夹。这个文件夹是编译生成的通用库,里面有7个.a的静态库。在xcode导入这些静态库可以使用,具体每个库
2017-12-08 18:35:23
1407
原创 git 误删的本地分支恢复方法
1. git log -g 找回之前提交的commit,并记下commit_id2. git branch newbranch commit_id3. 切换到newbranch分支,检查文件是否存在。
2017-12-06 14:13:07
18098
2
原创 OC stringByAppendingPathComponent和stringByAppendingString的区别
stringByAppendingString是字符串拼接,stringByAppendingPathComponent是路径拼接,stringByAppendingPathComponent会在字符串前自动添加“/”使路径完整。
2017-11-27 17:35:55
782
原创 将framework 发布到cocoapods
cocoapods默认只能基于git的代码管理,所以以下操作基于mac环境安装了cocoapods、并熟悉git操作,当然也可以用其他git平台或者自己搭建git平台。1.建立github仓库,建立成功后clone远程仓库到本地。一定要带一个MIT Lincese。 2.创建Trunk账户 pod trunk register 邮箱地址 ‘用户名’ 注册完了会
2017-08-28 15:39:47
628
原创 hibernate 注解开发
使用注解的核心有点就是可以避免繁琐的映射文件,直接创建对象关联。创建具有注解的hibernate应用程序有4个步骤。 1.为MySQL添加链接驱动程序的jar文件和注解 2.创建持久化类 3.在配置文件中添加持久化类的映射。 4.创建索引或者存储持久对象的类。1.自己去下载相应的jar包2.创建持久化类 创建一个持久化的类:User,
2017-08-16 16:52:17
462
原创 关于iOS 静态库.a 合并通用库
.a 分为模拟器运行的和真机运行的,所以需要将它们合并成通用的静态库。在终端中输入 lipo -create 模拟器静态库路径 真机静态库路径 -output 新生成的通用库路径/通用库名称 合并出来的通用静态库需要查看一下支持的架构 lipo -info 通用库路径armv7 和 arm64为真机的静态库 i386 x86_64位模拟器的静态库此处应
2017-08-15 17:09:17
723
原创 hibernate 结合MySQL使用
hibernate的API中常用的有三个类,一个是配置管理类Configuration,一个是SessionFactory代表hibernate.cfg.xml配置文件。还有一个是Session对象用于连接数据库。加载配置,创建session连接数据库等操作每次使用都需要,所以封装成一个工具类
2017-08-14 11:27:15
516
原创 java 代码块,构造代码块,与静态代码块
1.普通代码块:在方法或者语言中出现的{}就是普通代码块。这是我们用的最多最普遍的,它就是在方法名后面加上用{}括起来的代码块。这种普通代码块是不能单独存在的,它必须要跟在方法名后面。public class test { public void test{ system.out.printf("普通代码块"); } }2.静态代码块:就在代码块用s
2017-08-10 14:55:59
303
原创 hibernate结合MySQL的环境配置
hibernate 是持久层框架,是对JDBC的封装,核心内容是ORM。使用hibernate可以不用关心繁琐的JDBC,可以大大减少代码量。环境搭建:(以MySql为例)1. 首先需要倒入 hibernate的核心包和依赖包,还有MySql的JDBC驱动包,添加入工程。2.核心配置文件 hibernate.cfg.xml数据库的基本配置信息name="con
2017-08-09 17:43:49
1035
原创 JDBC for MySQL的简单实用
JDBC 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。首先需要创建一个操作类,用于连接MySQL。需要一个JDBC的jar包:mysql-connector-java-xxx-bin.jarpublic class MySqlHelper { public static final String url = "jdbc:mysql://l
2017-08-08 11:08:45
537
转载 Navicat for mac使用教程
本文转载自:http://www.jianshu.com/p/326c1aaa10521.安装后第一次打开会弹出此框要求你连接mysql。连接名随便填,password 默认为 root.屏幕快照 2014-12-16 上午12.03.48.png2.完成之后,进入主界面你会看到你刚看创建的Connection.(这里我创建的连接名字为DB)屏幕快照 2014-12
2017-08-04 17:26:32
2069
原创 springmvc 配置文件详解
Springmvc 是一个基于DispatcherServlet的MVC框架,所以要先配置一个DispatcherServlet中可以自定义一个servlet.xml的配置文件,前面著名WEB-INF位置,名字为springmvc-servlet.xml,我们也可以不新建springmvc.xml ,而是用默认的,默认的配置文件格式/WEB-INF/[servlet-name]
2017-08-03 11:59:46
360
原创 idea 断点调试
1:Step Over ,进入下一步,如果是方法,那就直接跳过(F8)2:Step Into,进入下一步,如果是方法,就进入方法内部,但是不会进入jdk封装的方法。(F7)3:Force Step Into:强制进入下一步,不管是什么方法,即使是jdk封装的方法,也会进入。(Alt+Shift+F7)4:Step Out:跳转到下一个断点,没有一直运行到最后。(Shift+
2017-08-02 16:29:24
304
原创 idea 启动tomcat报错 Application Server was not connected before run configuration stop, reason: Unable t
解决方法:在host文件中将 127.0.0.1 localhost后面加上主机名127.0.0.1 localhost xxxxx 主机名可以通过hostname获取。
2017-07-26 19:29:41
5494
原创 initWithNibName和loadNibNamed的区别
1. initWithNibName 只用于初始化controller,loadNibNamed都可以初始化如UIView。2. 加载方式不一样,initWithNibName类似懒加载,用到的时候才会加载。loadNibName是即使加载。
2017-07-18 11:53:43
634
原创 iOS 给类别添加属性
在iOS中,类别使用非常方便,可以在不改动原有代码甚至没有源代码的情况下,添加方法。类别特别适合已经存在大量子类还要添加公用方法。但是类别添加属性就需要用到运行时来关联添加了。因为在类别中去定义属性时,xcode没法生成对应的成员变量,成员变量是类的东西,类别本身不是类。只能用运行时机制手动关联存取过程。demo地址:https://github.com/zhouxiangyu6666
2017-07-10 12:17:55
464
原创 iOS 制作静态库时引入其他静态库
以前在制作静态库.a的时候也有导入其他静态库,但导入的都是.a形式的静态库,没有什么问题可以将其它的.a 静态库打入自己的.a静态库,然后直接给用户提供自己的.a就行了,关于在我的.a静态库中引用了其它的静态库,用户是并不知道的。但是依赖的系统动态库是无法打入到自己的.a中的,需要用户导入2个静态库.a依赖的所有动态库。今天需要在.a中引入.framework形式的静态库,发现并没有...
2017-07-05 12:36:18
4231
原创 iOS 吐丝提示框
下面是一个吐司提示框的封装,iOS 6以上全部适配,横竖屏也都适配了,不同屏幕尺寸,iphone、ipad也都适配了,操作简单。只需在viewController中指定 横竖屏和提示框内容。[ZXYParam shareInterface].isVer=0; 这是指定代码的横竖屏,0代表横屏,1代表竖屏。[ZXYParam shareInterface].conten
2017-06-27 11:36:30
2959
原创 用 keychain 永久存储
用keychain存储是将信息存入钥匙链中,比NSUserDefaults安全而且app删除还会存在所以用于存储唯一标识和重要的密码等信息。我在KeychainWrapper的基础上做了封装,用了一个单例类ZXYUserManager来对Keychain操作公开了四个属性和五个方法属性可以根据自己项目的需要进行增加或更改。getUserAccountList用于
2017-06-23 15:26:26
336
原创 storyboard及xib的拆分
storyboard和xib的熟练使用可以大大提高开发效率和清晰项目逻辑,但是当开发程序的页面太多,单个页面太复杂时,一定要对storyboard和xib进行拆分。1.storyboard拆分选中想要分开的画面,可以选中一个viewcontroller,按住shif选中多个,点击 Xcode的菜单栏,选择"Editor->Refactor to Storyboard"。
2017-05-27 19:17:38
988
原创 关于storyboard中scrollerview的问题
在 storyboard中如果勾选了autoLayout,在用scrollview的contentsize机制有点坑。在autolayout下,会在viewDidAppear之前根据subview的constraint重新计算scrollview的contentsize。 所以就算你在viewdidload里面手动设置了content size也没有用。因为在后面,会再重新
2017-05-25 11:13:35
496
原创 iOS 关于应用内跳转的问题
在iOS开发中应用内跳转是很常用的,比如第三方登录跳转到授权的App(QQ,微信等),还有第三方支付(微信,支付宝等)开发这些都需要应用内跳转的知识。先大概说下流程:appA想跳到appB,先将appB绑定一个URL Schemes(如:appB),在appA中实现: // 1.获取应用程序App-B的URL Scheme NSURL *appBUrl = [N
2017-05-04 19:28:13
2211
原创 iOS 微信支付流程
1.去微信开发者平台填写商户信息,签约,注册APP。微信审核大概要一周的时间然后会以邮件的形式通知,并给APPID,Appsecret,API密钥,微信支付商户号,下载SDK导入到工程中(或者用cocoapods),按照文档添加必要的库和设置。2主要来说下开发流程:用户使用APP客户端,选择商品下单。client调用后台接口将用户的商品信息传给s
2017-05-03 19:58:20
871
原创 iOS 即时通讯常用一些概念
近期要开发即时通讯,先看了理论概念,总结一下。即使通讯一般涉及到的协议是传输层协议和应用层协议,传输层有TCP连接和UDP连接,先简单的说下2者的区别: 1.TCP需要三次握手建立连接,而UDP不需要建立连接,所以TCP属于可靠的传输协议,UDP是一种不可靠的传输协议,UDP所谓的连接相当于一种影射,UDP单方面认为目标地址(端口)是可用的,从而首发数据,而实际是未必可用,所
2017-04-26 18:35:50
603
class-dump
2019-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人