自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 升级到xcode9 shell脚本自动打包失败

升级完xcode9 自动打包报: xcrun: error: unable to find utility “PackageApplication”, not a developer tool or in PATH Build step ‘Execute shell’ marked build as failure因为8.3以后把PackageApplication删除了, 一下是我的解决方

2017-09-21 12:31:44 2615

原创 升级Xcode到8.3.1报error: Invalid bitcode signature错误

把Xcode 升级到8.3.1之后,运行公司的一个项目发现总是报以下错误error: Invalid bitcode signatureclang: error: linker command failed with exit code 1 (use -v to see invocation)Apple Mach-O Linker (ld) Error Group clang: error: li

2017-04-19 17:22:20 14274 2

原创 Xcode恢复默认字体

前两天升级Xcode8觉得字体难看,就手贱把字体给改了,结果改了之后更难看,就想改回来Xcode –>Preferences –>Fonts&Colors 找到左下面的+选中Default新建一个Default选中新建的Default,就改回默认的字体了

2017-02-08 14:48:44 5162

原创 图片处理---缩放,挖取,截屏,旋转

1 给UIImage建一个Category,KHandle .h文件定义方法#import <UIKit/UIKit.h>@interface UIImage (KHandle)/*** 对指定的UI控件进行截图*/+ (UIImage *)captureView:(UIView *)targetView;/** * 截屏 */+ (UIImage *)captureScreen;

2016-12-29 15:18:21 816

原创 绘画板的实现

实现一个绘画板,用户可以根据自己的喜好进行任意的"涂鸦",绘画完成得到绘制的图片。为了实现这个应用,仅通过重写UIView的drawRect:方法是不行的,因为只实现drawRect:方法用户每次绘制的时候就会失去上一次绘制的内容,这样显然是不行的,还需要我们在内存中创建一张图片来保存用户上次绘制的内容,当用户开始绘图时通过重写drawRect:方法进行时实绘制,当用户想要绘制的图形确定下来时,将

2016-12-09 14:33:27 499

原创 Quartz 2D绘图的一般步骤

自定义UIView使用路径绘图的步骤如下1 调用 UIGraphicsGetCurrentContext()函数获取CGContextRef2 调用CGContextBeginPath(CGContextRef __nullable c)函数开始定义路径3 调用如下函数绘制子路径 4 如果路径添加完成,调用CGContextClosePath()函数关闭路径5 设置路径绘制的相关属性:线宽

2016-12-08 13:41:40 446

原创 iOS 文本绘制

1 新建一个工程 ,创建两个UISlider分别控制文字的缩放和旋转- (void)viewDidLoad { [super viewDidLoad]; UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(50, self.view.frame.size.height - 100, self.view.frame

2016-11-30 15:29:15 1561

原创 UIImage加载图片的方法及imageNamed和imageWithContentsOfFile的区别

UIImage常用的图片加载方法1 + imageNamed::该方法用于加载指定文件名称对应的图片,该方法有缓存机制,如果该方法试图加载的文件在缓存中不存在时,它才会去加载图片文件并缓存它;如果系统已经缓存过指定图片,该方法将直接使用缓存过的图片。2 +imageWithContentsOfFile::该方法用于加载指定文件名对应的图片,并不会将图片缓存起来。3 + imageWithDat

2016-11-28 13:56:04 855

原创 tcp三次握手四次挥手

三次握手TCP的三次握手是怎么进行的:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给客户端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;最后,客户端发送一个SYN=0,ACK=1的数据包给服务端,告诉它连接已被确认,这就是第三次握手。之后,一个TCP连接建

2016-11-25 13:27:24 325

原创 Block实现原理

新建一个工程在main函数中添加如下代码 #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... int i = 2; void (^myBlock)() = ^

2016-11-23 14:21:22 335

原创 深copy和浅copy

NSCopying与NSMutableCopy协议怎么让我们自己定义的类可以调用copy或mutableCopy来复制一个对象的副本呢?1 定义一个User对象@interface User : NSObject@property (nonatomic ,strong) NSMutableString *name;@property (nonatomic ,assign) int age;

2016-11-22 12:34:53 840

原创 关于NSMutableArray线程安全的思考和实现

NSMutableArray是线程不安全的,当有多个线程同时对数组进行操作的时候可能导致崩溃或数据错误,下面是我对线程安全的几个思路,希望由此能给你带来一些思路,如果有错误的地方还希望大家能够指出 1. 第一次被问到对于 NSMutableArray线程安全你觉得应该怎么做的时候,我想当然的认为只对读写(add,remove,replace)操作加锁就可以了,当然这样可以保证线程的安全但是失去了

2016-11-17 16:32:51 12582 4

原创 iOS 单元测试

添加测试用例步骤及示例XCTest,它是Xcode7中内置的测试框架,使用起来非常简单 1.新建工程的时候添加测试单元 2.单元测试示例 咱们在这假设一个用户向主播送礼物场景,根据用户送的礼物不同消耗的代金币不同 User(用户)->Present(礼物)->Anchor(主播) Present类// Present.h// unitTestDemo//// C

2016-11-17 14:45:16 688

原创 dispatch_sync添加到主线程关联的串行队列卡死问题理解

- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"1"); dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"2"); }); NSLog(@"3"); // Do any additional setup after loading

2016-11-15 15:39:36 3186

空空如也

空空如也

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

TA关注的人

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