- 博客(42)
- 收藏
- 关注
原创 iOS-Block
block:将函数及执行上下文封装起来的对象。 内部有isa指针,本质为oc对象。获取局部变量的匿名函数。block大小。匿名函数是指不带函数名称函数。block形式:全局block、栈block、堆block使用clang查看:总共4个结构体这个结构体由两个成员结构体和一个构造函数组成。结构体中现在保存了一个指针变量,所以任何对这个指针的操作,是可以影响到原来的变量的block在哪个区取决于是否捕获调用外部变量1、不使用外部...
2021-03-03 11:03:43
99
原创 iOS-23种设计模式概念
原型模式:使用原型实例创建对象的种类,并通过复制这个原型创建新的对象。工厂模式:创建对象的接口,让子类决定实例化哪一个类。继承类型抽象工厂模式: 通过对象组合创建抽象产品;创建多系列产品建造者模式:将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。以不同的方式构建对象。单例模式:保证类只有一个实例。适配器模式:将一个类的接口转换成客户端希望的另外一个接口。桥接模式:将抽象部分和它的实现部分分离,使他们能独立变化。外观模式:为系统中的一组接口提供一个统一的接
2021-02-26 17:36:44
257
原创 iOS-概念小记
==========================================================================================#define 内容替换、不会类型检查、不内存分配Const 内存分配、类型检查栈:向低地址扩展的数据结构、内存连续、静态分配和动态分配堆:向高地址扩展、内存不连续动态分配数组:栈区和数据区数组所占内存大小指针:...
2021-02-23 10:38:28
218
原创 iOS-数据结构&网络
链表:列表元素在内存中不是顺序存储的。查找慢。插入、删除只需要对元素指针重新赋值,效率高。二叉树:树形结构下,两个节点以内,都称为二叉树。状态码1. 1XX 表示通知信息,如为接收到了或是正在处理。2. 2XX 表示成功,如已经接受或者知道了3. 3XX 表示重定向,如需要完成此时的请求还需要进一步的操作4. 4XX 表示客户端错误,如客户端请求语法错误等5. 5XX 表示服务器错误,如服务器本身内部出错怎么判断一个http请求...
2021-02-02 09:56:58
102
原创 iOS-多线程小记
进程和线程:线程是进程的执行单元,进程的所有任务都在线程中。线程是cpu分配资源和调度的最小单位一个程序可以对应多个进程。一个进程可有多条线程,至少有一条。同一个进程内的线程共享进程资源多线程优点:提高程序执行效率提高程序资源利用率多线程缺点:占用内存空间、线程越多, 开销越大NSOperation优点:任务依赖,执行顺序执行优先级状态控制设置最大并发数nsthread+runloop实现常驻线程:...
2021-02-02 09:53:55
149
2
原创 iOS-运行时runtime小记
Oc对象的isa的指针指向什么。啥作用:指向它的类对象,可以找到对象的方法一个nsobject对象占用多少内存空间:16节isa指针:实例对象isa指向类对象类对象isa指向元类对象元类对象isa指向基类黑魔法(method swizzling)本质:方法交换怎么换:selector 方法名,imp函数指针,通过selector可以找到imp发送消息报异常unrecognized selector ...
2021-02-02 09:49:58
72
原创 iOS-内存管理小记
内存泄漏主要两种:Release操作泄漏的内存循环引用泄漏的内存重写dealloc:必须最后调用[super dealloc]循环引用实质:多个对象相互之间有强引用,不能释放让系统回收代理用weak还是assign?Mrc用assign, arc用weak,因为变量释放后 自动指向nil,防止野指针存在Nstime 循环引用属于相互循环使用解决方法:回调方法设置invalidate设置为nil在合适的位置in...
2021-02-02 09:47:15
98
原创 Swift超级简单基础总结
学习了swift也一段时间了, 现在废话不哆嗦, 直接来个简单的基础回顾吧 !!NSRange :用于表示范围的结构体,有两个属性:起始点location和长度length, swift新增了Range,和NSRange相识;但不可通用 let nsstring : NSString = "my name is cjh" let nsrange :
2017-09-29 17:21:13
334
原创 iPhoneX适配
相信iOS 开发者对iPhoneX的适配会需要去重新改造、重新适配。 让我去把遇见到的问题适配写下来。。1.导航栏的高度的适配iOS 11以前,状态栏statusBar的高度是20,底部tabbar的高度是49。iOS 11之后,状态栏的statusBar的高度变成了44, 底部的tabbar变成了83所以建议还是抽取成宏。 2.安全区域的问题iOS 11之前,
2017-09-26 18:22:04
3535
原创 删除项目中未使用的图片和类文件
随着时间的变更 在项目进行开发的时候。可执行文件 +图片资源的也跟着不断的累积, 导致app的”容量“不断地增加。为此我们需要给app瘦身,删除一些没有用到的类文件和图片资源。 养成良好的习惯,做定期的检查。 1、删图在进行删除没有用到的图片的时候,我想到了两种方法去实现它。 第一、使用工具; 第二、使用脚本删除。使用工具:个人建议还是使用工具方法比较好。 不
2017-09-03 19:04:38
1305
原创 工具类总结
1、颜色->图片方法- (UIImage *)imageWithColor:(UIColor *)color { CGRect rect =CGRectMake(0.0f,0.0f, 1.0f,1.0f); UIGraphicsBeginImageContext(rect.size); CGContextRef context =UIGraph
2017-07-04 16:41:35
212
原创 kvo实现导航栏透明
在viewdidload当中添加监听者[self.tableviewaddObserver:selfforKeyPath:@"contentOffset"options:NSKeyValueObservingOptionNewcontext:nil];当监听的属性发生改变时就会去通知该对象,该对象必须实现- observeValueForKeyPath:ofObje
2017-07-04 16:17:55
253
原创 UI报错总结
1、应用从录音功能页面切换到首页的时候,会出现5个tabbarItem在底部下沉的情况,下沉20个像素左右。 当然这个问题对于scrollview、tableview等可以垂直滚动的影响不大。但对于固定的控件,比如说UITabbar就会受到影响。为此添加如下代码就行了:// 固定位置和尺寸-(void)viewDidLayoutSubviews{ [super viewDidL
2017-03-14 10:15:12
431
原创 cornerstone冲突报错记录总结
小虾米 在使用cornerstone的时候 ,看到自己的工程目录下面有一个红色的Conflict。 于是打开自己的xcode,打开storyboard的时候 弹窗显示The document "xxx.storyboard" could not be opened. Unrecognized file content.原来其中有一个storyboard被虾米不小心给改了。 在update的
2017-02-23 22:40:54
1809
原创 appearance和appearanceWhenContainedIn的使用
+ appearance表示可以修改整个程序的外观+ appearanceWhenContainedIn表示当一个类被另一个累包含时 才能修改外观
2017-02-14 10:45:02
1395
原创 iOS开发笔记(三)
1、NSRunLoop运行循环机制 负责监听处理所有的事件。2、关闭隐式动画 [CATransaction begin]; [CATransaction setDisableActions:YES]; [CATransaction commit];3、函数重载定义:函数名相同,函数类型不同 func sum(num1:Int ,nu
2016-08-07 00:26:52
477
转载 iOS为什么Block的属性声明要用copy
在实际开发中,发现使用Block有着比delegate和notification更简洁的优势。于是在目前的项目中大量的使用block。 在我的头文件我是这样声明使用block的。[plain] view plaincopy@interface BrushViewController : BaseViewController
2016-07-18 18:29:50
404
原创 Xcode7网络请求报错App Transport Security has blocked a cleartext HTTP
虾米在用Xcode7创建项目并用AFNetworking发送请求的时候突然就报错了,对此虾米在网上查了一些资料,并进行一个记录。AFNetworking打印报错的error如下: App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Tempor
2016-07-10 22:26:08
278
原创 iOS开发笔记(二)
1.UIView不接收触摸事件的情况> 设置了不接收用户交互userinteraenabled = NO(提醒:UIImageView默认userinteraenabled = NO,当然它的子控件也是不能接收到触摸事件的)> 隐藏hidden = YES> 设置了透明度alpha = 0.0 ~ 0.0.1> 子视图的位置超出了父视图的有效范围,子视图无法交互设置了
2016-06-06 23:01:05
432
原创 iOS开发笔记(一)
这是本人在开发中简单整理的iOS笔记,有点凌乱吧 哈哈。不过内容简单易懂 希望你能喜欢。1、内存内存溢出:内存不够用,数据溢出内存泄漏:该释放的对象没有释放2、性能检测方法静态分析:product—>Analyze动态分析:product—>profile3、多线程安全解决方法和线程控制 >只在主线程刷新UI界面 >防止资源抢夺
2016-05-31 22:40:09
1099
原创 iOS开发学习之导航控制器和应用程序的生命周期
利用导航控制器UINavigationController可以实现多个控制器的切换典型的例子就是iPhone上"设置”应用下面虾米写一个小demo代码来实现的多控制器的切换。使用UINavigationController的使用步骤:#import "JHAppDelegate.h"#import "JHOneViewController.h"@imple
2016-03-04 22:43:15
1336
原创 iOS开发学习之多线程
多线程1进程指在系统运行的程序 如:QQ Xcode两个正在运行的进程2每一个进程至少有一条线程,进程的所有的任务都在线程中执行,线程是进程的基本执行单元。3线程的串行,一条线程只能执行一个任务,可以认为线程是进程中的执行路径4原理:进程好比车间,线程好比车间工人。同一时间内,CPU只处理一条线程,多线程并发执行,其实是CPU快速地在多线程之间调度和切换。5过度使用开启多个线
2015-12-31 21:24:26
507
原创 远程推送/本地推送通知demo
推送通知分本地推送和远程推送通知。——— 推送流程对于远程推送通知,我们是基于APNs与苹果设备在联网时进行长连接。开发人员需要将设备的UDID和和应用的唯一标识AppID传给APNs服务器从而换取设备的deviceToken。然后将deviceToken交给公司的服务器去管理(极光推送服务器)。服务器将deviceToken传给APNs服务器,它将内容信息推送到对应的设备的应用上。请看下
2015-10-31 18:12:55
808
原创 block简单回顾
你好。虾米在StoryBoard上添加添加两按钮,监听其点击进行录音监听测试。话不多说。请看代码://// JHViewController.m// 录音//// Created by cjj on 15-10-17.// Copyright (c) 2015年 jh.chen. All rights reserved.//#import "JHView
2015-10-24 23:33:47
370
原创 音乐/音效之工具类的封装
您好。今天。虾米主要还是实现一个关于音频/音效的工具类的封装。 也是为之后能写一个关于音乐播放器做的一层简单的封装。不过主要目的还是在类的封装上。如果有哪些需要改进的,请留下您的建议或联系虾米。再次感谢!!^-^本人用一个继承自NSObjec的JHAudioTool类,并提供关于音乐/音效文件的程序接口。实现代码如下://// JHAudioTool.h
2015-10-16 23:19:32
665
原创 iOS开发学习之地图demo
您好、最近假期,虾米在此期间学习了下地图的一些常用知识点。通过这样的一个分享平台,希望能提升自己。另外虾米附上画线和定义大头针的两份小demo。如果您发现有什么需要加入的或者新的想法和心得,请留下您的建议。再次感谢。虾米的联系方式:QQ :584837022@qq.com微信:foreverlovewillgoon第一份Demo ——自定义大头针demo效果
2015-10-01 21:33:20
505
原创 iOS开发学习之无限滚动UICollectionView和BUG解决措施
您好、平时我们经常在图片浏览器中会翻看一些图片,对于这会滚动的效果实现,我们第一个直觉会想到的UIscrollview。首先我们会考虑到View的一些循环利用,一般情况下会创建两到三个View去实现它的来回的切换滚动。不过今天虾米没用到这种方法。虾米用的是UICollectionView。那下面 小虾米通过小作业来实现无限滚动,如果当中有什么不好的或者是需要改善的地方,请告诉我
2015-09-21 10:54:24
4027
原创 iOS开发学习之实现瀑布流
您好、相信您都知道第三方框架带来的不仅是方便,还给我们在架构上带来了不一样的灵感。。。我们通过他们的第三方源代码的框架当中 学习了怎么样去设置一套框架给别人用。。。。当然,虾米在学习当中是看着别人写的框架去了解他们所写的代码。。。所以今天虾米 通过第三框架中搭建一个简单的瀑布流小作业。。。如果当中有什么说不清楚 或者是虾米说错的地方。。。请留下您的评论或者是联系虾
2015-09-18 22:38:09
614
原创 仿网易新闻框架
您好。在这个信息化的时代里,我们也知道一些新闻客户端,比如说搜狐、今日头条。还有一些种种个性特色的新闻APP。今日,小虾米做了一点小小的总结, 分享我最近搭建的一个基本网易框架。如果其中有什么不妥的地方,请大神提出您的意见。在这里我衷心谢谢。。。。。大致思路:1、设置一个根控制器。2、设置一个继承UIView并创建六个按钮的左菜单3、创建六个子控制器并赋有导航控制器
2015-09-13 21:45:53
1527
原创 iOS开发学习之UIScrollerView实现新特性
大家好。相信大家都对一些APP的新特性有所了解了。 一个好的新特性,会让用户得到不一样的体验,会让用户很清晰的了解该APP的新特性功能。然后,请让小虾米来说说我所学习的内容吧 。首先,图片1,图片2,图片3从图片分析当中,我们可以知道 它是一个UIScrollerView + UIPageControl。代码如下:#import "JHNewfeatureV
2015-08-31 21:18:03
865
原创 iOS开发学习之UITableView
您好。相信您对新浪微博界面有所了解。 对此,我们需要对UITableView有所了解的。 下列我们通过一些代码来渐渐拓展我们的视野范围。从界面可以看出上面是一个UINavigationBar和下面是一个UITabBar。至于这两部分,我会在后来把这小项目写上去。现在我们来了解下UITableView 的使用。这是一个分组的列表 UITableViewStyleGroup
2015-08-27 03:18:11
743
原创 将多个UIImage合并成一个UIImage
创建两个UIImage UIImage *image1 = [UIImage imageNamed:@"apple1.png"]; UIImage *image2 = [UIImage imageNamed:@"apple2.png"];创建UIImage的方法有很多种,我们就简单的通过imageNamed:方法来创建。合并之后的sizeCGSiz
2015-08-25 20:10:45
583
原创 UIButton文字居左显示
UILabel文字居左显示实现文字居左显示代码如下: UILabel *label = [[UILabel alloc] init]; label.frame = CGRectMake(50, 100, 200, 50); label.text = @"Label is me"; label.textAlignment = UITextAlignmen
2015-08-25 17:00:28
1922
原创 iOS中Foundation的常见知识点
大家好,共同认识下Foundation框架当中的一些知识点:字符串类:NSStringNSString1.按格式生成:[NSString stringWithFormat:@"The result is %@",5];2.得到字符串长度:myString.length3.将字符串写入文件NSString *mySt
2015-08-25 13:26:42
424
原创 iOS开发学习之保存照片到系统相册
创建UIImageView创建UIImageView是为了将照片展示出来,我们是要把UIImage保存到系统相册(Photo Alum):#import "ViewController.h"#define SCREEN [UIScreen mainScreen].bounds.size@interface ViewController ()@property (nonatomic,
2015-08-25 12:12:05
479
原创 学习笔记 类别与协议
类别:扩展已存在类的内置功能(无需继承便可扩展类的功能)类别可以扩展类之前不存在的一个属性,不能像继承那样给类别接口添加实例变量,而是要扩展一个类的行为除了对现有类增加新的行为之外,类别还支持对自己构建的类把相关方法分组到多个单独文件中在m文件中用匿名类别可以实现方法或属性的私有化在import之后添加:interface 类名(){私有
2015-08-25 10:35:42
301
原创 iOS开发学习之内存管理笔记简述
大家好。今天简述一下iOS当中的内存管理,自从iOS5出现后,apple增加了ARC机制以后,给开发人员带来了不少的方便,为了来更好地去理解,我们还是有必要去了解的。1. 在OC中,每个对象都有一个保留计数器,每当我们创建一个对象时都有一个初始值为1的保留计数,每当释放的时候,保留计数都为0; 2. 创建自动释放的对象要求以一个方法创建对象时,以自动释放的形式返回该对象
2015-08-24 15:54:45
422
原创 Iphone程序运行流程
main.m文件,iOS应用程序的主入口main函数的两个参数为命令行参数,在ios开发中不会用到这些元素,包括这两个参数是为了与标准ANSI C保持一致UIApplicationMain函数:为应用程序提供主入口点,创建新的应用程序实例和它的委托。委托负责处理应用程序状态变更,并为那些变更提供响应启动和加载窗口后,应用程序委托退
2015-08-24 15:37:35
304
原创 5种创建UIImage的类方法
1. 使用类方法imageNamed:创建+(UIImage *)imageNamed:(NSString *)name;name是照片名称。创建UIImage对象 ,代码如下:UIImage *image = [UIImage imageNamed:@"Jihong"];使用imageNamed:初始化的时候,会先检查缓存中是否存在Jihong的照片,如果不存在,图片首先会被缓存
2015-08-24 00:23:21
441
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人