![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS笔记
小周天
从事于IT行业
展开
-
IOS-数据存储之SQLITE简单的使用
数据存储之SQLITE简单的使用 ios中sqlite是一种轻量级的存储数据库,它的使用和mysql或者sqlserver等关系型数据库的使用方式相似。下面介绍sqlite使用结构流程。先看下总体的效果图第一个主界面 主要用来显示数据库中的数据使用tableview来展示 - 为第二个界面 用来向数据库中添加数据,数据名称为学生学号和学生姓名 - 第三个 为显示...原创 2018-04-22 10:55:42 · 312 阅读 · 2 评论 -
自动引用计数器(二)
1.说到OC内存管理,就不能不提autorelease。autorelease相当于c语言中的局部变量,超出了一部分就会失效。 aotorelease的具体使用方法如下: (1)生成并持有NSAutoreleasePool对象。 (2) 调用已分配对象的autorelease实例方法。 (3)废弃NSAutoreleasePool对象。 另外Cocoa框架中也有很多类方法用于返回au...原创 2018-07-15 20:22:23 · 185 阅读 · 0 评论 -
Runtime(二)-消息转发
附上文章链接1附上文章链接2转载 2018-07-30 08:58:54 · 181 阅读 · 0 评论 -
iOS-atomic与nonamatic的区别
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。 atomic:设置成员变量的@property属性时,默认为atomic,提供多线程安全。 nonatomic:禁止多线程,变量保护,提高性能。atomic是OC使用的一种线程保护技术,基本上来说,是防止在写未完成的时候被另一个线程读取,造成数据错误。而这种机制是耗费系统资源的。所以在iPhone这...转载 2018-07-30 11:01:41 · 340 阅读 · 0 评论 -
OC的Block学习
先看道笔试题,注释标识的很清楚。int val=10; const char *fmt="val=%d\n"; void (^blk)(void)=^{printf(fmt,val);};//block会对变量进行一次拷贝 val=2;//变量值得修改不会影响block中的值 fmt="There values were ...原创 2018-07-26 22:07:00 · 694 阅读 · 0 评论 -
自动引用计数器(四)-规则
在ARC有效的情况下编译源码,必须遵守一定的规则,下面就是ARC的规则: ·不能使用retain/release/retainCount/autorelease ·不能使用NSAllocateObject/NSDeallocateObject ·必须遵守内存管理的方法命名规则 ·不要显示的调用dealloc ·使用@autoreleasepoo块代替NSAutoreleasePool ...原创 2018-07-22 22:21:50 · 208 阅读 · 0 评论 -
Runtime机制(三)-方法交换
附加上原文链接转载 2018-07-30 20:06:39 · 318 阅读 · 0 评论 -
iOS中导航控制器动画
先来看下实现的效果的样子 视图控制器一代码:- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor=[UIColor whiteColor]; _imageView=[[UIImageView alloc]init]; _imageView.frame=CGRec...原创 2018-08-14 08:56:15 · 209 阅读 · 0 评论 -
Runtime实现手势回调
说一下需求:有一排UIVIew通过点击不同的UIView来回调不同的控制器。 思路:使用runtime机制,为UIView添加一个分类,里面添加手势,使用block回调。下面看具体源码: .h文件:#import <UIKit/UIKit.h>@interface UIView (Events)-(void)addClickedBlock:(void(^)...转载 2018-08-01 22:17:20 · 216 阅读 · 0 评论 -
iOS实现音频播放
首先看下要实现的界面: .h文件代码#import <UIKit/UIKit.h>#import <AVFoundation/AVFoundation.h>@interface ViewController : UIViewController<AVAudioPlayerDelegate>{ //播放按钮 UIButton...原创 2018-08-12 21:39:52 · 1303 阅读 · 0 评论 -
iOS第三方框架SDWebImage的使用
首先看下总体界面: Appdelegate文件代码:#import "AppDelegate.h"#import "ViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)applicatio...原创 2018-08-12 22:03:52 · 260 阅读 · 0 评论 -
OC中关于NStimer的一点小问题
问题:如果有一个计时器和一个可以拖动的控件,比如tableview,textview等等。每当计时器计时开始时候滑动其他控件,会出现暂停计时效果。改进方法如下:...原创 2018-09-11 14:26:40 · 221 阅读 · 0 评论 -
IOS中变量的内存处理
内存区块:栈区 (临时变量)堆区 (程序员手动分配空间,释放是由程序员释放)(alloc,malloc,calloc,主要防止循环引用)。全局区 (static)(编译时产生,app结束时候才释放)常量区 (常量)(编译时候分配,app结束时候由系统释放)代码区--------------------------------------------------------...原创 2018-09-17 19:38:35 · 332 阅读 · 0 评论 -
ios中property与@synthesize
使用property会自动生成get与set方法。@interface Time : NSObject//property会自动生成set与get方法@property int hour;@property int minute;@property int second;-(void)show;@end@implementation Time-(void)show{ ...原创 2018-09-17 21:36:06 · 340 阅读 · 0 评论 -
ObjectC中assign,retain,copy之间的区别
assign-简单赋值,不更改索引计数。使用对象:基础数据类型,NSInteger,int,float,char。retian-该属性赋值的时候,先release之前的值,然后再赋值给属性,引用计数加1.(指针拷贝,地址相同,内容相同)copy-前一个值发送一条release消息,基本上像retain,但是没有增加引用计数,是分配一块新的内存来放置它。(内容拷贝)*copy是创建新的对象,...原创 2018-10-12 11:26:22 · 694 阅读 · 0 评论 -
AFNETWorking源码解析
https://www.jianshu.com/p/a360140bf220转载 2018-11-19 10:19:21 · 406 阅读 · 0 评论 -
iOS基础总结
iOS基础总结如何让自己的类使用copy修饰符?如何重写copy关键字?功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入...转载 2019-04-16 10:45:53 · 286 阅读 · 0 评论 -
OC中self.a与_a的用法
Person.m@interface Person : NSObject@property(nonatomic,copy)NSString *name;@property(nonatomic,copy)NSString *sex;-(void)changeNameValue:(NSString*)newName andsexvalue:(NSString*) sexvalue;@end...转载 2019-04-30 21:43:30 · 489 阅读 · 0 评论 -
ios中代理传值的过程&&OC中代理传值
总之代理传值是使用协议来传递值。我在代码中分析到,代理传值可以分为正向传值和反向传值(个人理解)。所谓反向传值也就是开进入主界面中label没有值,进入VCB中你会输入值之后返回主界面中就会看到在VCB中写的值。反向传值则相反,是由主控制器设置值的。 1.反向传值,先看界面设置。 可以看到VCA中label没有值。之后点击按钮跳转到VCB中,在文本框写入值。 返回VCA中可以...原创 2018-07-14 16:21:53 · 797 阅读 · 0 评论 -
自动引用计数器(一)
内存管理/引用计数-可以理解为我们教研室中师兄师姐和我们小师弟来学习。大晚上的第一个人进来那肯定要开灯啊,那之后再进来的人就不用开灯了啊,到了很晚的时候大概十一点十二点人慢慢都走了,最后一个走的人那肯定要关灯,关窗户,关等等等等。不然第二天你就废了^*_*^。第一个人进来那对教研室的资源事情情况为1,之后进一个人,使用资源情况就加1,最后人都走了,使用资源情况也就减1,每走一个人就减1,直到最后一个人走使用资源就变为0,那肯定是教研室中所有的资源都处于关闭状态。原创 2018-07-13 21:26:32 · 775 阅读 · 0 评论 -
ios导航栏理解(1)
导航栏(navigationBar)为导航控制器的一个属性(navigationController) 导航控制器继承于视图控制器 导航项(navigationItem)是视图控制器的属性,协调管理着barbuttonitem或者title...原创 2018-06-27 16:42:39 · 147 阅读 · 0 评论 -
ios判断不同按钮的点击事件
IOS中判断不在一个文件中的继承于UIView中不同按钮的点击事件的思路先说总体结构流程xib布局文件xib的.h文件和xib的.m文件加载xib布局文件的主控制器xib的布局文件 在这个布局文件中,主要来判断两个按钮,一个是咨询,一个是我的手术哪个被点击。.h文件中的代码如下://三个按钮点击方法- (IBAction)clickBtn...原创 2018-04-18 15:36:23 · 1456 阅读 · 0 评论 -
有关ios中循环引用问题的总结
有关ios中循环引用问题的总结如何干掉环 在此处不讲解循环引用是什么,请自行搜索。ios内存分为堆,栈,常量区,栈和常量区都是有系统管理的。1.delegate与环//ClassA: @protocol ClssADelegate - (void)fuck; @end @interface ClassA : UIViewController @property (nonatomic转载 2018-05-08 22:07:46 · 262 阅读 · 0 评论 -
ios中kvc(swift)的一点细节补充
ios中kvc的一点细节补充口说无凭,见图见真知。(总结别人)转载 2018-05-08 22:11:32 · 176 阅读 · 0 评论 -
ios之ReactiveCocoa框架的学习1
以下是几种简单的用法:(导入reactivecocoa框架的时候注意,只使用oc语言导入2.5版本以前,包括2.5版本,使用swift需要导入2.5版本以后)//// ViewController.m// RAC05//// Created by mac on 2018/5/2.// Copyright © 2018年 Gooou. All rights reserved....原创 2018-05-02 15:10:46 · 252 阅读 · 0 评论 -
ios-初识swift(Swift 3.0中if let与guard的使用)
swift相对于oc来说更方便程序猿使用,更安全,更高(搞)效(笑),为啥呢?说oc是个奇葩,开始学习swift后,总是听说和别的面向对象的其他语言类似,但是也是一个奇葩,总有很多奇怪的语法,之前学习过java,c#,python等等,感觉也没有现在这么难懂。总感觉苹果总是和别人不一样。好了先不吐槽了,既然选择了就要走下去,总结下今天学习的总结下:Swift 3.0中if let与guar...原创 2018-05-02 22:16:40 · 1373 阅读 · 2 评论 -
iOS-初始swift(二)
swift中元组,可选类型,断言,字符串,字符串的截取,数组与字典的使用昨天写了关于swift中的一点知识,毕竟是第一天开始学习,感觉有点凌乱。今天写点swift 4.0的东西,这才慢慢入门,懂了一些技巧,现在说下,swift中每个版本中xcode中的语法都不太一样,看书和看视频都介绍的是swift 4.0的语法,然而我的xcode中是3.0或者4.0.于是看着2.0的视频学习4.0,哪里的语...原创 2018-05-03 22:03:00 · 174 阅读 · 0 评论 -
ios-初识swift(三)
ios-初识swift(三)本次要写的是有关于闭包的简单用法以及swift 4.0的模拟异步加载网络数据,完成回调 闭包(一切理解皆在代码中)//闭包 func closer(){ /** 1.闭包的所有代码【参数 返回值 执行代码】都放在{}中 2.in 是用来区分函数定义和执行代码 */ ...原创 2018-05-04 16:27:58 · 123 阅读 · 0 评论 -
ios中代理传值的过程
被代理者(要传值的界面)步骤:声明协议,协议中有要进行传值的方法声明一个delegate属性:id<代理的协议名>在主方法中使用代理========================================================================== 代理者(接受值得界面)步骤:实现代理协议实现代理协议中的...原创 2018-05-18 16:47:42 · 400 阅读 · 0 评论 -
很好的ios中解决所有键盘覆盖输入框的问题的文章
https://www.jianshu.com/p/77d2ba569142转载 2018-05-24 10:05:09 · 280 阅读 · 0 评论 -
ios项目上传的一点问题(图标)
关于图标:iphone中,29pt:58像素和87像素,40pt:80像素和120像素,60pt:120像素和180像素。AppIcon中:appstore中图标为1024*1024要求无透明度。需要五张大图像素为1242*2208...原创 2018-06-07 20:36:33 · 242 阅读 · 0 评论 -
ios中多线程的摘录
简书中比较全的多线程执行,在这里保存下链接传送门//// ViewController.m// syn_asyn//// Created by mac on 2018/6/20.// Copyright © 2018年 Gooou. All rights reserved.//#import "ViewController.h"@interface View...转载 2018-06-20 15:16:59 · 117 阅读 · 0 评论 -
自动引用计数器(三)
1.iOS内存管理分为MRC与ARC。OS X v10.6 或 OS X v10.7(64位应用程序)上的Xcode 4.2开始支持ARC,iOS 4 和 iOS 5或更高版本支持ARC。之前的MRC的意思是手动手动引用计数器,在写代码的时候需要写一堆retain和release,这样子也不可能完全避免不会造成内存泄漏。自从有了ARC之后,妈妈再也不懂担心我成为“聪明绝顶了”。ARC有效时候不能使...原创 2018-07-16 21:30:12 · 164 阅读 · 0 评论 -
自动引用计数器(五)-strong与weak
首先这里是一片比较基础的博客:https://blog.csdn.net/u012046379/article/details/50838777 我在这里再补充几句。 对象被废弃时候会进行一下几步操作: (1)从weak表中获取废弃对象的地址为键值的记录。 (2)将包含在记录中的所有__weak修饰符变量的地址,赋值为nil。 (3)从weak表中删除记录。 (4)从引用计数器表中删除...原创 2018-07-23 21:42:30 · 450 阅读 · 0 评论 -
ios定位功能总结
之前做了定位功能,需求是不停的获取用户地理位置和让用户上传自己的所在位置。刚开始理解这个需求以为是通过定位了解自己所在的位置。通过查阅资料才选择的百度地图定位sdk,后来才知道只需要用户上传自己的地理经纬度和标签就行。但是之前使用的是百度地图sdk现在没法改,所以来总结下原生态定位和第三方定位。原生态定位功能是苹果官方自带的定位框架CoreLocation和Mapkit框架。 Cor...原创 2018-07-12 12:00:25 · 255 阅读 · 0 评论 -
收集下iOS中Category的使用
1.https://www.jianshu.com/p/2bf61807b6b3转载 2018-07-06 10:00:32 · 293 阅读 · 0 评论 -
Runtime机制(一)
关于Runtime具体的简介请自行百度,我在这里只是总结下自己看别人学习的内容。 OC与Runtime交互通过三个方面: 通过OC与源代码通过Foundation框架的NSObject类定义的方法通过对Runtime库的直接调用 ·isa表示与class类型的objc_class结构体指针,访问方法时通过isa找到元类寻找对应方法的函数指针。 ·通常方法会被缓存到cac...转载 2018-07-13 08:50:56 · 376 阅读 · 0 评论 -
@dynamic与@synthesize的区别
@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@syntheszie var = _var;@synthesize的语义是如果你没有手动实现setter方法和getter方法,那么编译器会自动为你加上这两个方法。@dynamic告诉编译器,属性的setter与getter方法由用户自己实...转载 2019-04-30 21:50:01 · 197 阅读 · 0 评论