自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Immanito

滴水穿石,匠人精神

  • 博客(65)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 Objective-C Runtime笔记(官方Doc翻译+原创)

Objective-C是一门动态语言,它将静态语言在编译和链接时期做的事放在运行时处理Objective-C不仅需要一个编译器,,还需要一个运行时系统来执行编译代码,这个运行时系统即Objc RuntimeObjc Runtime是一个用C语言和汇编语言编写的库Objc Runtime有两个版本:Legacy 和 Modern 两个版本类对象与基础数据结构C

2016-11-08 09:19:45 1188

原创 iOS调用WebService(SOAP接口)

首先有几点说在前面一般,在请求URL的后面带有WSDL字样的需要调用WebServiceURL样式例子:http://ip:port/navigable/webservice/loginSerice?wsdl或者.wsdlwsdl (Web Services Description Language)网络服务描述语言调用WebService默认使用POST请求soap字符串使用常见的AFN

2016-08-05 15:39:30 7711 8

原创 iOS与unity3D简单交互

一.小记最近公司有个需求,需要用unity3D建立3D模型,并且实现切换功能,由于做开发时间不算长,又没有接触过unity3D, 所以只能一头雾水去网上查找资料,也看了雨松MOMO的文章,不过都是几年前的了,有些东西已经不适用了,只能边看边研究,今天终于有点眉目了,可以在unity3D导出的iOS工程文件的基础上,对3D建模的页面进行修改,并能够执行一些操作了。二.实现细节

2016-07-30 23:29:49 5387 10

原创 不在被虐中成长就在被虐中死亡

今天又被虐了,哎,平时太不注意细节了算是提了个醒吧,记录下来不要再被绊倒第二次1.视图完整生命周期,First VC是从xib文件创建的,所以走了initWithCoder2.判断一个数组是否是有序的3.多个timer在cell上4.Model有很多属性,使用runtime能少些代码,但是遍历属性数组时很蛋疼,有没有更好的办法

2017-11-09 00:09:36 454

转载 iOS静态库和动态库的区别

一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?

2017-11-08 00:18:44 600

原创 翻转二叉树(Invert Binary Tree)

题目来自LeetCodeInvert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9to 4 / \ 7 2 / \ / \9 6 3 1/** * Definition for a binary tree node. * public cla

2017-11-06 14:27:43 312

转载 语义化版本控制规范(SemVer)

简介在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。在依赖高的系统中发布新版本套件可能很快会成为恶梦。如果依赖关系过高,可能面临版本控制被锁死的风险(必须对每一个相依套件改版才能完成某次升级)。而如果依赖关系过于松散,又将无法避免版本的混乱(假设兼容于未来的多个版本已超出了合理数量)。当你专案的进

2017-11-03 14:46:43 331

转载 解决Xcode 的"Could not insert new outlet connection"问题

解决方式:(1)关闭Xcode(2)到~/Library/Developer/XCode/DerivedData目录中,找到用你的工程名字和一串字母连接起来命名的工程,删除这个文件夹。(3)重新打开Xcode

2017-10-13 11:57:26 374

原创 whose view is not in the window hierarchy!

在一个 ViewController 里面调用另外一个ViewController 时出现这个错误: 该错误一般是由于在 viewDidLoad 里面调用引起的,解决办法是转移到 viewDidAppear 方法里面

2017-09-25 14:25:55 281

原创 iOS URLstring中带有中文

最近抓了一个APP的接口,使用它的数据(原谅我不厚道),在请求的时候用AFNetworking时,将带有汉字的参数直接装入字典请求,没什么问题,也就没有在意,但是当自己用string转NSURL去请求HTML页面的时候,怎么也加载不出来,带汉字的URL直接copy到浏览器也可以打开,一时懵逼,思来想去,Charles中抓到的接口里显示的不是汉字,时带有%的编码,只有这个地方可能出问题了,于是又ge

2017-09-19 21:55:11 1978

原创 CocoaPods安装

安装rubyruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"升级rubysudo gem update --system移除源gem sources --remove https://rubygems.org/更换源gem source -a https://gems.ruby-china.org/查看更...

2017-09-18 10:55:20 393

转载 iOS系统的各种设备识别码

1.UDID 全称Unique Device Identifier,顾名思义,苹果iOS设备的唯一识别码,由40个字符的字母和数字组成,为了保护隐私苹果已经禁止读取这个标识了。2.UUID 全称Universally Unique Identifier,基于iOS上某个单个的应用程序,只要用户没有完全删除应用程序,则这个UUID在用户使用期间一直保持不变,如果用户删除了这个应用程序,然后再重新

2017-08-14 20:08:41 3116

原创 CSAPP:优化程序性能(四)

了解一些限制程序性能的因素一. 寄存器溢出如果我们的并行度P超过了可用寄存器的数量,那么编译器就会通知溢出,将某些临时值存放在内存中,通常是运行时堆栈上分配空间,聚个例子,当把combine6的多累积变量模式扩展到k=10或者k=20的时候,我们会发现这种循环展开程度没有改善CPE,有些甚至变差了,现代x86-64处理器有16个寄存器,并可以使用16个ymm寄存器保存浮点数,一点循环变量的

2017-06-21 22:00:47 1415

原创 CSAPP:优化程序性能(三)

理解现代处理器之前所讲述的优化策略都不依赖于目标机器的任何特性,这些优化只是简单的降低了过程调用开销、消除妨碍编译器优化的因素,随着师徒进一步提升性能,必须考虑利用处理器的微体系结构的优化,也就是处理器用来执行指令的底层系统设计。由于现代微处理器的复杂性,处理器的实际操作与通过观察机器级程序所察觉到的程序行为是大相径庭的,在代码级上似乎是一次执行一条指令。每条指令包括从内存或寄存器取值,执

2017-06-21 00:36:52 1618

原创 CSAPP:优化程序性能(二)

程序示例为了说明一个抽象程序是如何被系统地转换成更有效的代码的,我们使用基于如下所示的向量数据结构的运行示例向量由两个内存块表示,头部和数据数组,头部声明结构如下, data_t代表基本数据类型:typedef struct { long len; data_t *data;}vec_rec, *vec_ptr;生成向量,访问向量元素,确定向量长度的基本过

2017-06-20 16:02:23 899

原创 CSAPP:优化程序性能(一)

编写高效程序需要做到以下几点:第一,必须选择一组适当的算法和数据结构第二,必须编写出编译器能够有效优化以转换高效可执行代码的源代码(理解优化编译器的能力和局限性很重要)程序员必须在实现和维护程序的简单性和运算速度之间做出权衡,几分钟就能编写一个简单的插入程序,而一个高效的排序算法程序可能需要一天或更长时间来实现和优化,大多数编译器,例如GCC向用户提供了一些对它们所使用的优化的限制

2017-06-20 13:39:56 1782

转载 iOS跳转设置界面的多个url

NSString * urlString = @"App-Prefs:root=WIFI"; if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) { if ([[UIDevice currentDevice].systemVersion doubleValue] >= 1

2017-06-02 14:37:30 889

原创 Property follows Cocoa naming convertion for return 'owend' objects

Property follows Cocoa naming convertion for return 'owend' objects这个警告是命名不规范导致的,不能够以关键字作为属性名的开头。

2017-05-23 15:03:05 398

原创 Auto property synthesis will not synthesize property '***'

auto property synthesis will not synthesize property 'description' because it is 'readwrite' but it will be synthesized 'readonly' via another property [-Wobjc-property-synthesis]属性的名字与系统自带的属性名字冲突了。

2017-05-23 14:33:42 927

原创 关于循环动画

最近测试总反应一个问题就是APP使用过二维码扫描之后,手机总是会出现发烫,耗电量增加的问题,插上手机,打开Xcode开始debug.前前后后折腾了一会,发现,打开二维码扫描界面的时候一切正常,但是当push到其他界面之后,CPU的使用率飙到100+%,耗电量也变成了very heigh,绝对是一个重大缺陷于是开始排查问题,一开始想到的是AVCaptureSession的对象没有释放

2017-04-28 11:35:27 475

转载 Cocoapods快速解除依赖库

移除cocopods后重新安装1、打开终端,运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库2、安装成功后,cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖3、运行pod install,重新安装cocopods

2017-04-27 17:35:28 1021

原创 iOS JSON序列化与反序列化

序列化与反序列化操作同属于类NSJSONSerialization序列化:将Json对象转化为Json字符串NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonObj options:NSJSONWritingPrettyPrinted error:&error];NSString *jsonStr = [[

2017-03-27 14:35:10 3380

原创 APP配置多环境分发(二)

上一篇文章定义好了不同scheme下不同的bundle ID和display name 就可以通过选择不同scheme来生成两个内容相同的独立APP,但是APP中的内容更改还需要处理一下。我们如何在APP代码中判断当前是哪个scheme,又如何判断当前scheme下是debug还是release?这是就需要用到预处理宏定义,在build setting中的Apple LLVM8.0- Pr

2017-03-15 11:33:12 500

原创 APP配置多环境分发(一)

之前为公司做过一个关于内部业务流程的系统,最近多了些加盟商,加盟商内部同样需要这套系统进行运转,虽然APP的整体架构没有任何改变,还是那套系统,但是一些细节改变了,包括但不限于APP名称,APPIcon, URL, 界面上的一些文字,图片等等,开始也没有想太多,copy了3份代码独立管理(请无视懒癌晚期),每次有bug,不用说,不停的画轮子,浪费时间,没有任何意义,最近企业账号又下来了,3个APP

2017-03-07 23:49:39 990

转载 iOS学习路线图

2017-02-17 10:26:05 340

转载 Xcode8无法注释问题

单行注释:在方法的地方按 Command+/标注的功能,快捷键是Command + Option + / 需要在方法名的上面(空白)的地方按 Command + Option + /      才管用如果注释失灵没有反应的话,打开终端运行sudo/usr/libexec/xpccachectl然后重启Xcode

2017-02-05 14:43:35 603

原创 XIB中设置UIView圆角

首先熟悉两个属性IBInspectable和IBDesignableIBInspectable修饰的属性可以在Interface Builder中查看并修改IBDesignable可以让视图直接在画布上渲染,实时修改实时更新// UIView+CornerRadius.h#import IB_DESIGNABLE@interface UIView (CornerRa

2016-12-05 16:01:10 628

原创 iOS原生二维码扫描(二)

由于原生的二维码扫描,响应速度特别快,全屏扫描区域的话会出现二维码图像在屏幕边界的时候就会识别,影响使用体验,所以要更改一下识别区域的大小输出流AVCaptureMetadata有这么一个属性rectOfInterest 就是它的识别区域大小属性,这是它的描述:/*! @property rectOfInterest @abstract    Specifies a rec

2016-11-30 13:50:07 508 2

原创 iOS原生二维码扫描(一)

@interface ScanCodeViewController (){ AVCaptureSession * session;//输入输出的中间桥梁}@end@implementation ScanCodeViewController- (void)viewDidLoad { [super viewDidLoad]; [self configUI];

2016-11-26 14:18:59 747

原创 iOS异步加载网络图片

当我们从一个界面跳到下一个界面,而下一个界面需要从网络加载图片的时候大体的思路是:NSURL * url = [NSURL URLWithString:urlStr];NSData * data = [NSData dataWithContentsOfURL:url];UIImage * image = [UIImage imageWithData:data];[self.photo

2016-11-16 11:44:33 2466

原创 error: couldn't parse contents of 'Info.plist'

error: couldn't parse contents of '/Users/jiaoyanqi/Desktop/运管平台-iOS/内部app/HuiBaoyg/Info.plist': The data couldn’t be read because it isn’t in the correct format.commadn +  R 运行程序,发现编译器说plist文件的格式不正

2016-10-28 10:57:49 2207

原创 关于tableView和cell的小知识点总结

1.注册cell//自定义cell使用xib时,注册cell- (void)registerNib:(nullable UINib *)nib forCellReuseIdentifier:(NSString *)identifier//重用时调用cell的方法- (void)awakeFromNib;//自定义cell未使用xib时,注册cell- (void)reg

2016-10-26 11:43:38 472

原创 iOS获取storyBoard中的viewController

当想获取到xib中的viewController时非常简单,有个初始化方法直接 initWithNibName: 可以直接用nib的名字获取到对应的viewController 但是到storyBoard的时候需要多一个步骤 UIStoryboard * sb = [UIStoryboard storyboardWithNam

2016-10-20 16:32:50 3212

原创 iOS解决duplicate symbol报错

这种错误的存在一般是有两种情况:1.检查文件列表,查看是否有重复导入的文件夹或者类。2.工程引入头文件时,将.h错写成.m。欢迎补充!

2016-10-20 10:55:52 503

原创 关于MAC系统没有修改/usr/bin和/usr/sbin文件夹权限问题

在看ffmpeg教程的时候有一个操作是把脚本拷贝到sbin目录下,这时候我发现系统管理员也没有权限进行写操作,于是查了一番资料,由于系统启用了SIP(System Integerity Protection)导致root用户也没有修改权限,所以我们需要屏蔽掉这个功能,具体做法是:1.重启电脑2.command + R 进入recover模式3.点击最上方菜单使用工具,选择终端4.运

2016-09-27 10:48:02 31722 2

原创 解决No codesigning identities found:

"No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“20160905YG02”) were found."对于

2016-09-05 16:32:53 4467

转载 Charles 从入门到精通

本文转载自唐巧的博客:http://blog.devtang.com/2015/11/14/charles-introduction/目录及更新说明更新记录:2013 年 12 月,第一版。2015 年 11 月,增加 Rewrite 相关介绍。2016 年 8 月,增加 Charles 4 的介绍,反向代理功能和设置外部代理,并且介绍了如何解决与翻墙软件的冲突。本文的内容

2016-08-19 11:47:14 439

原创 iOS判断是否插入耳机

//获取设备状态,是否插入耳机,如果插入耳机,则返回“YES"+ (BOOL)isHeadphone{ UInt32 propertySize = sizeof(CFStringRef); CFStringRef state = nil; AudioSessionGetProperty(kAudioSessionProperty_AudioRoute,&propertySi

2016-08-05 16:22:49 1221

原创 button执行frame动画响应点击事件

如果按照常规方法去写这个过程,代码如下:@interface ViewController ()@property (nonatomic, strong) UIButton * button;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.button = [[UIButt

2016-08-05 12:56:38 1243

转载 UIViewAnimationOptions的一些枚举类型

关闭textField的键盘联想self.textField.autocorrectionType = UITextAutocorrectionTypeNo; 关闭textView的键盘联想self.textView.autocorrectionType = UITextAutocorrectionTypeNo;

2016-08-05 09:55:26 848

Axure培训(1)

对于axure的软件的整体界面,和经常使用的元件进行基础讲解。

2016-09-29

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

TA关注的人

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