- 博客(86)
- 资源 (35)
- 收藏
- 关注
原创 weak的自动置空
创建和销毁差不多相同,从sideTble中的weak_table散列表找到对应的weak_entry_t数组,然后通过遍历找到对应的指针地址,置为nil,防止了野指针的报错,或者插入到weak_entry_t数组。当一个对象obj被weak指针指向时,这个weak指针会以obj作为key,被存储到sideTable类的weak_table这个散列表上对应的一个weak指针数组里面。当一个对象obj的dealloc方法被调用时,Runtime会以obj为key,从sideTable的weak_table。..
2022-07-28 16:37:29
553
原创 关于WKWebView的Cookie和配置的一些名词解释
注册一个对象来加载与指定URL方案关联的资源。返回指定URL方案的当前注册处理程序对象。
2022-07-15 18:54:53
635
原创 _和self.赋值的区别
1.用_属性赋值,是直接赋值地址,把指针指向内存,strong/copy/retain等修饰词并不起作用2.用self.赋值,是使用setter方法,通过imp重定向到setPropety方法找到对应的内存,根据属性的修饰词进行操作赋值。用_或者self.进行属性赋值,对使用copy修饰的属性有影响之外,别的区别不大,因为strong/retain等只是引用计数的增加,而copy修饰的时候,如果是进行的深拷贝(比如copy对象为multable数据),_并不会重新开辟内存,而self.会开辟一份新内存(深
2022-07-12 20:26:14
199
原创 关于@dynamic/@synthesize和getter/setter方法的关系
关于@dynamic/@synthesize和getter/setter方法的关系
2022-07-07 13:44:48
128
原创 tableView 默认选中某一行
NSIndexPath *indexpath=[NSIndexPath indexPathForRow:1 inSection:0];[tableView selectRowAtIndexPath:indexpath animated:YES scrollPosition:UITableViewScrollPositionBottom];[self tableView:tableView didSelectRowAtIndexPath:indexpath];
2020-07-08 14:08:43
505
原创 unsigned,const,static,extern
一. unsigned和signed 1.存储范围不同,以16位计算机为例:signed的存储范围是(-2^15 -- 2^15-1)即 -32768到 + 32767 的整数 unsigned的存储范围是(0-- 2^16-1)即 0到 + 65535 的非负整数 在声明int的时候,在可以保证是正整...
2020-05-27 15:18:33
681
原创 获取某个 protocol 协议下的所有方法
- (NSArray<NSString *> *)appDelegateMethods{ static NSMutableArray *methods = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ unsigned int metho...
2020-04-08 18:57:41
695
原创 button的图片和文字的位置关系
UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(200, 200, 150, 60)]; btn.layer.borderWidth = 1; btn.layer.borderColor = [UIColor darkGrayColor].CGColor; [self.view addSubview:b...
2019-12-14 01:58:22
257
原创 ios下的各个文件夹路径和获取方法
温故知新,理一遍文件夹路径每个APP沙盒下有四个文件夹:documents,tmp,app,Library(里面还有两个文件夹Caches 和 Preferences)。一:作用1.documents:这是文档目录。有关应用的所有数据文件应该写入到这个目录下,这个目录用于存储用户数据或者其他应该定期备份的信息。iTunes会同步此文件内容,适合存储一些重要的数据.2.tmp:临时目...
2019-07-31 09:55:02
3182
转载 浅谈事件的分发与响应
在 iOS 开发中,当用户用手指点击了一下屏幕,会发生什么呢?系统是怎么判断用户点击的位置呢?我们开发者又如何做出“没有bug”的交互呢?带着这些疑问,我们一起谈谈事件的分发与响应。铺垫事件顾名思义,事件就是发生的一件事,对于APP来说,就是发生的一个操作。具体的就是用户点击一下屏幕就会出现一个事件(体现为一个UIEvent),即一个触摸事件。其实,对于 iOS 设备的用户来说,他...
2019-07-25 14:45:57
247
原创 ios 11中tableView的新特性
1.LargeTitle: a.全局使用:// if (@available(iOS 11.0, *)) {// [[UINavigationBar appearance] setPrefersLargeTitles:true];// } else {// // Fallback on earlier versions/...
2019-03-25 03:25:05
295
原创 去掉某个controller及子controller的navigationController底部的分割线
在当前控制器下:[self.navigationController.navigationBar setShadowImage:[UIImage new]]; [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"whiteBG.pg"] forBarMetrics:UIBa...
2018-11-22 16:51:57
230
原创 常用GCD梳理(二)
// 四种队列 //———————————————————————————————————————————————————————————————————————————————— // //1、主队列(是串行队列) dispatch_queue_t mainQueue = dispatch_get_main_queue(); // /...
2018-04-24 15:22:02
352
原创 xcode9遇到xib编辑错误
有时候在网上下载的demo等打开运行的时候报错如下: Illegal Configuration: Compiling IB documents for earlier than iOS 7 is no longer supported. 。。。解决方案如下图:builds for ... 选为7.0以上就可以了...
2018-04-24 14:32:30
435
转载 浅谈信号量的简单应用
理解这个概念之前,先抛出一个问题问题描述:假设现在系统有两个空闲资源可以被利用,但同一时间却有三个线程要进行访问,这种情况下,该如何处理呢?或者我们要下载很多图片,并发异步进行,每个下载都会开辟一个新线程,可是我们又担心太多线程肯定cpu吃不消,那么我们这里也可以用信号量控制一下最大开辟线程数。 定义: 1、信号量:就是一种可用来控制访问资源的数量的标识,设定了一个信号量,在线程访问之前,加上信号...
2018-04-24 12:22:14
1157
原创 iOS11中 navigation的一些新特性
1.大标题: self.navigationController.navigationBar.prefersLargeTitles = true;2.navigationItem的searchController if (@available(iOS 11.0,*)) { UISearchController *search = [[UISearchController alloc]ini...
2018-02-27 12:27:45
436
原创 git同步上传的几个命令
git pull origin master //同步远程仓库和本地仓库git add . //添加修改或新增的文件到保存到暂存区git commit -m 'some message about the change file' // 将暂存区里的东西提交到本地库版本git push origin master //提交到远程仓
2017-08-17 00:30:31
454
原创 iOS 10.3之后的富文本样式对中文实效
NSAttributedString *attrStr = [[NSAttributedStringalloc]initWithString:strattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:size], NSForegroundColorAttributeName:color,
2017-06-28 13:10:04
546
转载 AFNetworking3.1 基本使用
AFNetworking3.1 基本使用#import "HttpsManager.h"@implementation HttpsManager#pragma mark - 创建请求者+(AFHTTPSessionManager *)manager{ AFHTTPSessionManager *manager = [AFHTTPSessionManager m
2017-05-24 12:05:09
334
转载 iOS 实现NavigationController的titleView动态缩放效果
screenShot.png自己动手用Object-C和Swift两种语言各写了一个简单的小demo,下面先说一下用Object-C实现的简单原理.知识补充=====>因为在这个效果实现的过程中我遇到一些关于tableView的contentInset和contentOffset的困扰,所以在这里我想先解释明白关于这两个属性,然后再谈怎样实现我们需要的效果。
2017-04-13 17:48:04
1233
转载 NSURLSessionDownloadTask文件下载
本文内容大纲:1、回顾NSURLSessionTask2、NSURLSessionDownloadTask大文件之block下载3、NSURLSessionDownloadTask大文件之代理方法下载4、NSURLSessionDownloadTask大文件之代理方法实现断点续传下载 前言:如果读者是第一次阅读或者是学习关于本篇要介绍的NSURLSe
2017-04-13 17:44:17
972
转载 NSFileManager
NSFileManager类主要对文件和目录的操作(删除、修改、移动、复制等等)。如果对文件的内容更改,应该使用NSFileHandle。所以说NSFileManager相对于NSFileHandle偏向于对文件的管理,而不是对内容的操作。NSFileManager管理文件1. 创建文件NSString *path = NSSearchPathForDirectoriesI
2017-04-13 17:41:05
447
原创 autoresizing布局
UIView *view = [[UIViewalloc]initWithFrame:CGRectMake(20, 20, 200, 50)]; view.backgroundColor = [UIColororangeColor]; view.autoresizingMask =UIViewAutoresizingFlexibleWidth |UIVi
2017-04-12 13:01:37
320
原创 gitpull合并失败的可能原因,以及更改仓库连接
git push 的时候失败,提示冲突,需要pull。 于是git pull ,结果pull失败。 fatal: refusing to merge unrelated historiesgit --version看了下版本,git version 2.10.1 (Apple Git-78)因为git上的项目有个readme文件,旧版本可以直接git p
2017-03-29 15:58:53
2438
翻译 Xcode8制作.a静态库和存放xib和图片的.bundle
接上篇文章,继续创建.bundle文件1、首先在MyLbrary中添加bundle,名称为:LibraryResources2、因为bundle默认是OS系统的,所有需要修改他的信息。如图,修改成iOS系统3、设置Build Setting中的COMBINE_HIDPI_IMAGES 为NO,否则bundle中的图片就是tiff格式了4、创建一个测试类:MyVi
2017-02-23 17:16:21
1271
翻译 Xcode8制作.a静态库和存放xib和图片的.bundle
1、创建MyLibrary静态库如图:选择Cocoa Touch Static Library 点击下一步,然后起工程的名字就叫:MyLibrary选择库类型创建完毕的的样子就是下图:项目创建完成图为了使库的头文件被外面的项目工程找到并调用,需要我们将需要暴露的文件写在特定的目录里。添加方法如下图创建Header Phase创建完
2017-02-23 16:51:40
505
原创 在静态库中的xib跳转
在静态库中的xib跳转,bundle需要设置一下路径,否则容易报错: Could not load the nib '**" NSString * rescourcePath = [[NSBundle mainBundle] pathForResource:@"LibraryResources" ofType:@"bundle"]; NSBundle * bundle =[NSBundle bun
2017-02-23 16:37:37
376
原创 随机字符串
char data[16]; for (int i=0;xchar)('a' + (arc4random_uniform(26))));// for (int i=0;x return [[NSStringalloc] initWithBytes:datalength:16 encoding:NSUTF8StringEn
2017-02-05 14:23:10
293
原创 navbarButtonItem一些小技巧
导航栏右边按钮:颜色info.plist 添加 View controller-based status bar appearance, 设置为NO,[self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"navBack"]forBarMetrics:UIBarM
2016-10-25 17:32:46
459
原创 kvc
kvc,(key-value-coding).1访问变量(私有变量)。正常的public变量忽略,如果是private私有变量,通过get方法是访问不到的。但是通过kvc可以访问私有变量.比如在privateProperty类中定义一个私有属性 name:@interface privateProperty : NSObject{ @public NSStri
2016-10-25 16:40:41
295
原创 kvo
kvo,(key-value-observing),观察者模式。可以简单理解为监听属性,发生变化后,执行相应的方法。一般使用三步走:1:注册监听2:实现方法3:移除监听简单监听textField:- (void)viewDidLoad { [super viewDidLoad]; [_textField addObserver:self forKeyPath:@
2016-10-25 12:13:19
295
转载 1.Git与版本控制简介
尊重原创:原文链接地址:点击打开链接Intro版本控制系统是什么 版本控制系统(Version Control System,VCS)可以帮助我们记录和跟踪项目中各文件内容的修改变化。它可以帮我们保存项目的各个版本,以及修改原因,我们可以借用此工具回到项目曾经的某个状态。除此之外,版本控制系统也是帮助人员进行协作开发的利器。Git是什么 Git是一个
2016-10-21 16:27:03
411
原创 gitHub关联本地
git --version 查看电脑git 版本。没有的话,安装git因为本地git仓库和gitHub服务器是通过ssh加密,所以要在github.com上配置ssh-key------->ssh -v 或 ssh --version 查看ssh没有安装ssh的话,创建apple$ cd ~apple$ cd .ssh:No such fi
2016-10-19 17:48:54
385
原创 dispatch_soruce_t的简单使用事例
__block int time = 3; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); // dispatch_source_t timer = dispatch_source_create(DISPATCH_SOUR
2016-10-18 17:33:33
368
转载 dispatch_source_t
Timer Dispatch Source:定时调度源。Signal Dispatch Source:监听UNIX信号调度源,比如监听代表挂起指令的SIGSTOP信号。Descriptor Dispatch Source:监听文件相关操作和Socket相关操作的调度源。Process Dispatch Source:监听进程相关状态的调度源。Mach port Dispatch Source:监听
2016-10-18 17:18:20
595
UIAlertController
2015-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人