iOS Crash 分析

iOS开发中,解决Crash相信是开发者最为头疼的问题了,特别是对于已上线的应用,对其Crash的跟踪和修复显得尤其重要.

通常来讲iOS系统中Crash分为两种,未捕获的Objective-C异常和Mach异常

Objective-C异常

在OC层面(iOS库、第三方库出现错误抛出)的异常称为OC异常。
比如:

1
2
NSArray * array= @[@“s",@“x",@“m"];
[array objectAtIndex:4];

阅读全文

Xcode中使用LLDB调试

在Xcode中调试程序

对于我们日常的开发工作来说,更多的时候是在Xcode中进行调试工作。因此上面所描述的流程,其实Xcode已经帮我们完成了大部分的工作,而且很多东西也可以在Xcode里面看到。因此,我们可以把精力都集中在代码层面上。

苹果的官方文档中列出了我们在调试中能用到的一些命令,我们在这重点讲一些常用的命令。

阅读全文

做一个自己的私有pod

前言

在代码优化的过程中,难免要把某一个功能模块或者一个通用组件做成 pod。而这些 pod 只适用于我们自己的工程,放到 CocoaPods 的官方库里显然是不太合适的,所以我们需要做成私有的 pod,以便于我们自己的项目使用。

阅读全文

网络组件-SHMNetworking

基于AFNetworking封装的网络库,同时参考了YTKNetwork,一个请求一个对象。

阅读全文

UI组件-WDActionAlertView

行为很接近系统的UIAlertController,使用UIView实现,做了一些样式的自定义。

宽度固定,高度自增长

阅读全文

iOS函数响应式编程(一)

iOS函数响应式编程

函数响应式编程简介

函数式编程想必您一定听过,但响应式编程的说法就不大常见了。与响应式编程对应的命令式编程就是大家所熟知的一种编程范式,我们先来看一段代码:

1
2
3
4
5
6
7
int a = 3;
int b = 4;
int c = a + b;
NSLog(@"c is %d", c); // => 7
a = 5;
b = 7;
NSLog(@"c is %d", c); // 仍然是7

阅读全文

UI组件-WDCirculationScrollview

轮播图片显示控件

使用

1
2
3
4
WDCirculationScrollView *circuScrollView = [WDCirculationScrollView alloc] init];
[self.contentView addSubview:circuScrollView];
circuScrollView.frame = ...
circuScrollView.imageUrls = ...

阅读全文

UI组件-WDPageControl

分页显示图标

使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//初始化
WDPageControl *pageControl = [[WDPageControl alloc] init];
[self.bgView addSubview:self.pageControl];

//autolayout:只需要设置位置
[self.pageControl mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgView);
make.bottom.equalTo(self.bgView).offset(-8);
}];

//设置样式。默认WDPageControlStyleDarkContent(白色背景)
self.pageControl.controlStype = WDPageControlStyleDarkContent;

//设置页面个数,当前页
self.pageControl.numberOfPages = numOfPages;
self.pageControl.currentPage = currentPage;

阅读全文

面向xxx写代码

这篇文章比较抽象,大家在看的时候多搜一下相关概念尽量去理解。

阅读全文

iOS Block

iOS Block用法和实现原理

Block概要

Block:

带有自动变量的匿名函数。

阅读全文