自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

如鱼得水的专栏

追求创新,与时俱进!

  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 Swift&Objective-C混编互调

Swift开发是一种大趋势了,每年Apple都会发布新的版本。但是它的第三方库还是没有Objective-C的多,而且想用老项目中的工具类或框架,该怎么办呢?这就需要Swift&Objective-C混编互调了,但是在Objective-C的编译器主要可以识别以下几种扩展名的文件:.m文件,可以编写Objective-C代码或者C语言代码;.cpp文件,C++文件,只能识别C++或...

2019-08-18 17:27:46 508

原创 iOS开发之Block访问外部变量和循环引用问题

说起Block在iOS开发中作用非常多,用处也非常广。但要用好Block,确保业务逻辑正常,并且内存管理不出问题,也是不简单的。本篇不再阐述Block的概念和语法用法,就Block访问外部变量和循环引用问题来介绍一下。一、Block访问外部变量我们先看一个block访问外部变量的例子: int a = 10; void(^myblock)(void) = ^(v...

2019-08-18 17:24:31 710

原创 iOS多线程之定时任务

在iOS开发中我们经常会遇到一些业务,需要延迟一段时间去做一件事,或者是每隔一段时间都去做一件事,这就需要用到定时任务处理。iOS开发中常用的定时任务实现方式如下:performSelector 实现延时任务sleep(10)线程挂起/[NSThread sleepForTimeInterval: 10]实现任务等待,会阻塞主线程GCD的dispatch_after实现延时或dispatc...

2019-08-18 17:20:55 953

原创 iOS多线程之线程锁

在多线程开发中,不可忽视的一个问题就是多个线程同时访问同一个资源时,会造成脏数据等预想不到的结果,为了避免这种现象,我们需要在访问资源的时候添加线程锁,来控制访问。添加线程锁的方式在这主要讲三种方式:@synchronized隐式创建锁对象NSLockGCD的dispatch_semaphore_t信号机制一、@synchronized( )@synchronized()内的对象设...

2019-08-18 17:17:34 701

原创 iOS多线程之GCD用法详解

在上一篇讲解了iOS开发的三种多线程实现方式的特点和用法,在这一篇主要讲解一下GCD的用法。GCD(Grand Central Dispatch)又叫大中央调度,它对线程操作进行了封装,加入了很多新的特性,内部进行了效率优化,提供了简洁的C语言接口,使用更加简单高效,也是苹果公司推荐的方式。特点:GCD 可用于多核的并行运算GCD 会自动利用更多的 CPU 内核(比如双核、四核)GCD...

2019-08-18 17:15:34 753

原创 iOS多线程GCD、NSTread和NSOperation简介

在iOS开发中我们经常会用到多线程来处理一些业务,那么iOS里有哪些实现多线程的方式呢?NSTread:封装程度最小、最轻量级,开销较大。GCD(Grand Central Dispatch):内部效率优化,提供简洁的C语言接口,更加简单高效。NSOperation:基于GCD的一个抽象基类,不需要管理线程的生命周期和同步,比GCD可控性强。一、NSTreadNSTread封装程度最...

2019-08-18 17:12:30 643

原创 Runtime动态创建一个类和修改方法的操作

我们都知道Objective-C是一门动态语言,它的动态性一方面就体现在了runtime上。接下来我们就来看一下,通过runtime来动态的创建一个类,并且给类添加属性和方法,并且还能给已有的类修改、替换方法的实现。动态的创建一个类的步骤:创建一个类添加属性(一定要在注册前添加)注册这个类添加方法销毁这个类-(void)createClass{ //创建一个新类 My...

2019-08-18 17:09:36 671 1

原创 Runtime访问私有变量和方法及KVO访问

一、Class在之前的文章中我们提到,所有的对象都有个isa指针指向它对应的类Class,而Class是一个objc_class结构体,结构体中:实例变量列表objc_ivar_list方法列表objc_method_list对应的runtime获取方法:Ivar *class_copyIvarList(Class cls, unsigned int *outCount)Metho...

2019-08-18 17:06:42 311

原创 iOS开发之Autoreleasepool简介

Autoreleasepool即自动释放池,是在ARC自动管理内存机制下用来管理程序中开辟的内存的,ARC工程每个进程都有个全局自动释放池。MRC中,调用[obj autorelease]的对象都会放到Autoreleasepool中统一管理。在没有手动添加AutoreleasePool的情况下,autorelease对象是在当前的runloop迭代结束时释放的。一、用法//MRC下用法N...

2019-08-18 17:04:20 451

原创 iOS单例模式之MRC和ARC单例类

在iOS的开发中,我经常会用到的一种设计模式:单例模式,目的是让这个对象只实例化一次,在内存中只有一份内存。而且是常驻内存,不会被释放。手写一个单例也许我们都已经很熟悉,但是真的写的很完善吗,有哪些需要注意的呢?全局静态实例对象提供一个供外部调用的类方法加线程锁,防止重复实例化重写内存分配方法下面我们就在MRC和ARC两种模式下看一下单例的写法有什么区别。MRC单例首先我们来看...

2019-08-18 17:00:16 196

原创 __bride、__bride_transfer和__bride_retain的区别和用法

在上一篇里讲到内存泄漏的检测,有一处内存泄露是由于CoreFoundation创建的对象没有释放掉,在开发中Foundation和CoreFoundation框架里的对象需要转换才能用。一、ARC和Foundation、CoreFoundation和它一样的还有__bride_transfer和__bride_retain,那么他们之间有什么关系和区别呢?在讲这个之前我们先看一下ARC和Fou...

2019-08-18 16:57:57 192

原创 iOS静态分析Analyze、内存泄漏Leaks分析

在iOS日常开发中,内存管理十个很重要的话题和注意事项。在老的iOS版本中,都是手动管理内存(MRC),要时刻注意着内存的开辟和释放,很容易造成内存泄漏。ARC(自动引用计数)是iOS5、macOS10.7引入的内存管理技术,它使我们的开发更省心,不用去关注内存的释放,都交给了AutoReleasePool去管理。MRC和ARC在其他的文章介绍了,在这就不多阐述了。有了ARC就一定不会造成内存...

2019-08-18 16:54:21 923

原创 合并framework

Edit Scheme:选择run->将Debug模式改成Release模式,选择Close终端:输入并回车lipo -info 加真机上的这个文件路径 输出结果:armv7 arm64 说明是真机i386 x86_64 模拟器合并lipo -create 真机路径 模拟器路径 -output 输出文件路径再用lipo -info命令查看输出的合并后新的文件:这...

2019-08-18 16:49:41 1039

fxmacprnstd1702am105iml.dmg

Mac系统上,配置打印机的驱动程序,一键安装。配置教程https://www.jianshu.com/p/c369714bd7ab

2019-08-06

好学的Objective-C

作  者:(美)Jiva DeVoe 译 者:林本杰 丛 书 名:图灵程序设计丛 好学的Objective-C 出 版 社:人民邮电出版社 要为市面上最热门的Mac、iPhone和iPad等设备创建应用,就必须掌握Objective-C和面向对象编程。《好学的Objective-C》作者是顶尖的Mac开发人员和专业作家。通过本书的详尽指引,即使是编程新手也可以迅速学会Objective-C。本书全方位地介绍了Objective-C,从基础知识到资深程序员所使用的高级技术等众多主题,其中包括内存管理、多个框架的结合使用、线程安全的技巧,以及Xcode的详细用法等。通过阅读本书,读者将能够:掌握Objective-C语法、运行时和Xcode,编写出第一个移动应用程序创建类,使用属性,了解对象使用代码块、线程、KVO和协议定义和编写宏,处理错误并在项目中使用框架清理线程,学会使用设计模式,掌握高级技术利用NSCoder读写数据为Windows、Linux和其他平台编写代码本书既能引导Mac、iPhone和iPad开发新手入门,又可帮助高级程序员提高技能,是Objective-C开发人员的案头必备书籍。 第一部分 Objective-C 简介 第1 章 Objective-C 简介   第2 章 基本语法   第3 章 添加对象   第4 章 Objective-C 内存管理   第二部分 更多特性 第5 章 代码块   第6 章 键值编码和键值观察   第7 章 使用协议   第8 章 扩展现有类   第9 章 编写宏   第10 章 错误处理   第三部分 使用 Foundation 框架 第11 章 了解框架之间如何配合工作   第12 章 使用字符串   第13 章 使用集合   第14 章 使用NSValue、NSNumber和NSData   第15 章 处理时间和日期   第四部分 高级主题 第16 章 通过多个线程实现多处理   第17 章 Objective-C 设计模式   第18 章 利用NSCoder 读写数据   第19 章 在其他平台上使用Objective-C 

2013-11-08

空空如也

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

TA关注的人

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