自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tiramisu_LM的博客

简单的一些iOS的分享

  • 博客(33)
  • 收藏
  • 关注

原创 iOS-抽取私有Pod库

iOS-抽取私有Pod库引言一. 公有Pod库的本质二. 创建私有Pod库1.创建私有的远程索引库2.创建私有Pod组件库3. 将QDFoundation.podspec文件加入私有的远程索引库QDFoundationSpec4. 使用私有Pod库5. 更新私有库三、文件夹分层1. 文件显示层级2. 资源文件的使用注意参考链接引言最近对组件化相关的知识比较感兴趣,翻看了好多大神的博客,算是对组...

2019-03-08 12:58:41 449

原创 iOS 通用链接(Universal Link)唤起app的实现方法

iOS 通用链接(Universal Link)唤起app的实现方法准备工作开发者账号设置支持进入开发者中心 选择 Certificates, IDs & Profiles选择对应的AppId, 编辑其属性,让它能支持Associated Domains,编辑完成之后,保存将该项目对应的证书重新生成一遍,并下载,配置到工程中即可。XCode支持在项目中的Target-Capabilitie...

2019-01-21 18:35:52 14636 1

转载 iOS GPU和CPU资源消耗的原因和解决方案

**iOS构建流畅的交互界面--CPU,GPU资源消耗的原因和解决方案** CPU资源消耗的原因和解决方案 对象创建 轻量对象代替重量对象 * 不需要响应触摸事件的控件:CALayer显示 * 对象不涉及UI操作,则尽量放到后台线程创建 * 包含有CALayer的控件只能在主线程创建和操作 * 通过Storyboard 创建视图对象时,其资源消耗会比直接通过代码创建对象...

2018-06-30 14:55:12 2844 1

原创 iOS小明开发笔记(三十) (应用性能调优的建议和技巧)

注意:每在优化代码之前,你都要注意一个问题,不要养成”预优化”代码的错误习惯。时常使用Instruments去profile你的代码来发现需要提升的方面。Matt Galloway写过一篇很棒的如何利用Instruments来优化代码的文章。还要注意的是,这里列出的其中一些建议是有代价的,所建议的方式会提升app的速度或者使它更加高效,但也可能需要花很多功夫去应用或者使代码变得更加复杂,所以要

2016-02-24 09:39:13 780

原创 iOS小明开发笔记(二十九) (设计模式MVC、单例、代理、KVO)

其实iOS中的设计模式有非常多,常用的就下面这四种一.MVC设计模式(设计模式之王)MVC根据角色划分类,涉及到三个角色:Model:模型保存应用程序的数据。View:视图是模型的可视化表示以及用户交互的控件。Controller:控制器是一个协调所有工作的中介者。它访问模型中的数据并在视图中展示它们,同时它们还监听事件和操作数据。一个MVC模式的好的实

2016-02-24 09:35:48 530

原创 iOS小明开发笔记(二十八) (Autolayout(VFL)二)

2016-02-24 09:33:42 367

原创 iOS小明开发笔记(二十七) (Autolayout(VFL)一)

VFL的子视图居中,网上搜了很多都没找到有用代码,自己研究出来了。代码如下UIActivityIndicatorView* prgrssView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];  prgrssVie

2016-02-24 09:30:25 392

原创 iOS小明开发笔记(二十六) (同步、异步请求, GET、POST请求)

1、同步GET请求//第一步,创建URLNSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];//第二步,通过URL创建网络请求NSURLRequest *request = [[NSURLRequest alloc]initWithURL:

2016-02-24 09:26:40 386

原创 iOS小明开发笔记(二十五) (NSIndexPath)

是Foundation框架中的一个普通的类,它提供了到嵌套数列的树中特定节点的路径,事实上,它是一个整数阵列,表格视图使用这个去表现在特定章节中的特定行,UITableView用的所有索引路径正好有两个元素,第一个是章节,第二个是行。NSIndexPath和TableViews@interfaceNSIndexPath (UITableView) {}

2016-02-24 09:18:39 339

原创 iOS小明开发笔记(二十四) (NSCoding)

由于Sqlite数据库的blob数据和NSData的兼容比较好,我想尝试把一个NSArray存入Sqlite。Sqlite不支持数组的直接存储,所以我寻找了一些数组转化为NSData的方法。网上大多数的解决办法都是针对于字符数组,eg: NSArray*array01= [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",nil];这种数组的

2016-02-24 09:13:20 280

原创 iOS小明开发笔记(二十三) (C语言之堆栈入门--堆和栈的区别)

在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教

2016-02-24 09:11:08 475

原创 iOS小明开发笔记(二十二) (C语言之内存四区和函数调用模型)

内存四区模型流程说明1、操作系统把物理硬盘代码load到内存2、操作系统把c代码分成四个区3、操作系统找到main函数入口执行1、内存四区:一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap

2016-02-24 09:08:17 490

原创 iOS小明开发笔记(二十一) (缓存机制NSUserDefaults)

NSUserDefaults可以存取一些短小的信息。比如存入再读出一个字符串到NSUserDefaults:    但是并不是所有的东西都能往里放的。NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.    如果把一个自定义的类存到一个NSArray里,然后再存到NSUserDefaults里也是不

2016-02-23 18:13:15 350

原创 iOS小明开发笔记(二十) (retain、strong、weak、assign区别)

1、假设你用malloc分配了一块内存,并且把它的地址赋值给了指针1,后来你希望指针b,也可以共享这块内存,于是你又把a赋值给了b(assign)。此时a和b指向同一块内存,请问,当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块内存的时候会引起程序crash掉(message sent to deallocated ins

2016-02-23 18:10:04 428

原创 iOS小明开发笔记(十九) (Mac 终端命令介绍)

OSX 的文件系统OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念。你在桌面上看到的硬盘都挂在 /Volumes 下。比如接上个叫做 USBHD的移动硬盘,桌面上会显示出一个硬盘图标,它实际在哪里呢?在终端里执行 ls /Volumes/USBHD, 看看显示出的是不是这个移动硬盘的内容。根目录位置是 / 核心 Mac

2016-02-23 18:07:20 287

原创 iOS小明开发笔记(十八) (百度地图框架配置)

1.配置info.plist文件a.模拟器联网配置(Xcode7之后需要配置)"iOS9改用更安全的https的缘故"    NSAppTransportSecurity        NSAllowsArbitraryLoads    true/>    b.如果在iOS9中使用了调起百度地图客户端功能,必须在"Info.plist"中进行

2016-02-23 17:59:47 598

原创 iOS小明开发笔记(十七) (Quartz2D屏幕截图)

简介: 在程序开发中,有时候需要截取屏幕上的某一块内容.完成截屏功能的核心代码:- (void)renderInContext:(CGContextRef)ctx;调用某个view的layer的renderInContext:方法即可storyboard界面搭建:代码: #import"ViewController.h"#impo

2016-02-23 17:23:04 445

原创 iOS小明开发笔记(十六) (Quartz2D图片剪切)

1.把图片显示在自定义的view中先把图片绘制到view上。按照原始大小,把图片绘制到一个点上。代码:- (void)drawRect:(CGRect)rect{    UIImage *image2 = [UIImage imageNamed:@"me"];    [image2 drawAtPoint:CGPointMake(100, 100)]

2016-02-23 17:04:16 404

原创 iOS小明开发笔记(十五) (Quartz2D矩阵操作)

一、关于矩阵操作1.画一个四边形通过设置两个端点(长和宽)来完成一个四边形的绘制。代码: - (void)drawRect:(CGRect)rect {         //画四边形         //获取图形上下文         CGContextRef ctx = UIGraphicsGetCurrentConte

2016-02-23 13:51:01 361

原创 iOS小明开发笔记(十四) (Quartz2D图形上下文栈)

一、Quartz2D是怎么将绘图信息和绘图的属性绘制到图形上下文中去的?说明:新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drawrect方法。画线的三个步骤:(1)获取上下文(2)绘图(3)渲染要求:画两条单独的线代码和效果图:- (void)drawRect:(CGRect)rect

2016-02-23 13:46:56 328

原创 iOS小明开发笔记(十三) (Quartz2D简单使用二)

一、画文字#import "MMTextView.h" @implementation MMTextView - (void)drawRect:(CGRect)rect {             // 画文字         NSString *str = @"的额搜风搜分手了粉色发俄双方说法offFF瓦房你F回复F入会费W

2016-02-23 13:43:09 310

原创 iOS小明开发笔记(十二) (Quartz2D简单使用一)

#import "MMLineView.h"@implementation MMLineView// 当自定义view第一次显示出来的时候就会调用drawRect方法- (void)drawRect:(CGRect)rect{    // 1.取得和当前视图相关联的图形上下文(因为图形上下文决定绘制的输出目标)/    /

2016-02-23 13:37:18 276

原创 iOS小明开发笔记(十一) (Quartz2D简单介绍)

OS开发UI篇—Quartz2D简单介绍一、什么是Quartz2DQuartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统Quartz 2D能完成的工作:绘制图形 : 线条\三角形\矩形\圆\弧等绘制文字绘制\生成图片(图像)读取\生成PDF截图\裁剪图片自定义UI控件二、Quart

2016-02-23 13:33:07 684

原创 iOS小明开发笔记(十) (Xcode统计代码行数)

在网上搜到几种统计源代码行数的方法:1、打开终端。2、cd到你项目的路径。3、输入如下命令:a)统计整个工程的所有文件的代码量以及总量find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" "

2016-02-23 12:48:39 358

原创 iOS小明开发笔记(九) (tableViewCell侧滑显示多个按钮)

平常中所用的tableViewCell,左滑后,编辑状态只有一个删除按钮,现在很多APP上面都自定义实现了cell侧滑自定义编辑按钮,比如qq,微信侧滑后有“消息置顶”、“标记为未读”等。 话不多说, 代码如下:- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPat

2016-02-23 12:40:32 2043

原创 iOS小明开发笔记(八) (容易造成循环引用的三种场景)

ARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露。导致iOS对象无法按预期释放的一个无形杀手是——循环引用。循环引用可以简单理解为A引用了B,而B又引用了A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。若当前对象是一个ViewController,则在dismiss或者pop之后其dealloc无法被调用,在频繁的push或者pres

2016-02-23 12:25:53 323

原创 iOS小明开发笔记(七) (iOS设计模式—单例模式)

iOS设计模式——单例模式单例模式用于当一个类只能有一个实例的时候, 通常情况下这个“单例”代表的是某一个物理设备比如打印机,或是某种不可以有多个实例同时存在的虚拟资源或是系统属性比如一个程序的某个引擎或是数据。用单例模式加以控制是非常有必要的。单例模式需要达到的目的1. 封装一个共享的资源2. 提供一个固定的实例创建方法3. 提

2016-02-23 12:20:04 308

原创 iOS小明开发笔记(六) (SDWebImage简单使用)

模拟器联网配置(Xcode7之后需要配置)"iOS9改用更安全的https的缘故"    NSAppTransportSecurity        NSAllowsArbitraryLoads    true/>    第一步,下载SDWebImage,导入工程。github托管地址https://github.com/rs/SDWebImag

2016-02-23 01:04:45 456

原创 iOS小明开发笔记(五) (GCD死锁及解决方案)

GCD导致死锁的原因和解决方案 所谓死锁,通常指有两个线程A和B都卡住了,并等待对方完成某些操作。A不能完成是因为它在等待B完成。但B也不能完成,因为它在等待A完成。于是大家都完不成,就导致了死锁(DeadLock)。在使用GCD的时候,我们会把需要处理的任务放到Block中,然后将任务追加到相应的队列里面,这个队列,叫做Dispatch Queue。然而,

2016-02-23 01:00:32 396

原创 iOS小明开发笔记(四) (AVFoundation简介)

AVAudioRecorder在AVFoundation框架中AVAudioRecorder类专门处理录音操作,支持多种音频格式。下面是常用的属性和方法:属性说明@property(readonly, getter=isPlaying) BOOL playing是否正在播放,只读@property(readonly)

2016-02-23 00:50:13 1189

原创 iOS小明开发笔记(三) (cocoaPod的简单使用)

一、概要iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。二、安装由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境

2016-02-22 13:09:03 590

原创 iOS小明开发笔记(二) (地图定位之官方API)

定位要实现地图、导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作。Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图开发要配合定位框架使用。在Core Location中主要包含了定位、地理编码(包括反编码)功能。定位功能定位是一个很常用的功能,如一些地图软件打开之后如果用户允许软件定位

2016-02-22 13:04:16 758

原创 iOS小明开发笔记(一) (数据存储篇之sqlite3的基本使用)

前言:一.数据存储的方式:1.plist: (NSArray,NSString,NSDictionary等OC对象的存储)存储少量数据。2.Preference: (偏好设置/NSUserDefaults)存储一些软件设置,记住密码,自动登录等,存储少量数据。3.归档: (NSKeyedArchiver,NSKeyedUnarchiver)也是存储中小量数据

2016-02-22 12:47:11 519

空空如也

空空如也

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

TA关注的人

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