遇到的很多问题,解决后都是自己记着,以为不会忘记,之后却会想不起来了。

所以把今后解决的问题记录在这。

一.

在二级页面设置了CAlayer的代理,在返回一级页面报错:

EXC_BAD_ACCESS(code=EXC_I386_GPFLT)  :野指针,访问了一块不属于你的内存

因此delegate需要显示的释放      (释放顺序从外层到里层)

-(void)dealloc{

{
    layer.delegate = nil;//都得写在父类方法调用前

  //[super dealloc]; //ARC下 不需要调用父类方法,系统默认自动调用
}

二.

枚举值 与 字符串 相互转换

看来只能写一个方法来转换,里面判断枚举值,返回相应的字符串

三. NSString转换NSURL失败

NSString转换为NSURL

如果字符串里面有换行   会导致转换失败  返回nil

例如:

http://somewebsite.com?orderPassportId=31327458&freeAirRuleInfos1=SHA,DLCSHA,SHAHAK,FOCSHA,SHAZUH,SHASWA,CSXSHA,SHAWNZ,SHANNG,INCXIY,SHAKWL,KHNSHA,XIYXNN,SHALHW,UYNXIY

__HKLNR_1_2-24_50__FASTLINE_0&flightFreeCode=FASTLINE&tripType=1&departDate=20170518&oriDepartDate=20170518&flightNo=MU5189

四.prefix header等路径

$(SRCROOT)/MyPrefixHeader.pch

$(SRCROOT) 根目录

$(PROJECT_DIR)  项目路径

其实不需要了解太多   输入完成后都会显示实际的路径  只要匹配就好

五. NavigationBar透明度

UINavigationController

navigationBar.translucent属性控制导航栏的半透明效果

设置的背景图片跟随此属性半透明效果

translucent=YES,半透明,self.view.origin.y = 0;

translucent=NO, 不透明,seld.view.origin.y =

self.navigationController.navigationBar.frame.size.height;

六.ScrollView内部存在偏移

高度: NavigationBar导航栏 44.    StatusBar 状态栏 20.    标签栏Tabbar49.

当status bar, search bar, navigation bar, toolbar, or tab bar.等存在的时候

控制器属性automaticallyAdjustsScrollViewInsets默认为YES,此时如果

视图控制器VC的第一个子视图 或者 子视图的第一个子视图(可一层层下去) 是 UIScrollView或其子类,就会出现偏移

可以理解为 会根据Bar自动设置scrollview.contentInset属性。

现在我需要实现简单的效果

仅存在一个子视图ScrollView,内部有一张只能够左右滑动,不能上下滑动的图片。(contentSize.height <= image.height)

1.当只有状态栏时, sv内上方多了20个像素,且上下居然可以滑动。 contentInset.top=20

将automaticallyAdjustsScrollViewInsets = NO  正常

2.在有状态栏、导航栏的情况下

①. navigationBar默认为半透明的(translucent=YES)    sv内上方多了20+44个像素   contentInset.top=64

设置automaticallyAdjustsScrollViewInsets = NO  正常

②. 如果navigationBar是不透明的(translucent=NO)  automaticallyAdjustsScrollViewInsets无论YES还是NO 都是正常的

因此为了消除偏移,可以设置vc.automaticallyAdjustsScrollViewInsets = NO;

七. 存在转义字符的字符串如何恢复

NSString *string = @"1.为保障行程单邮寄的时效性,目前统一使用邮政EMS快递进行寄送。&lt;br&gt;2.请您完整填写收件地址、邮政编码及联系方式,如因信息错误、不全造成无法投递,东航概不承担责任,邮寄费用不退。";
__unused NSString * A = [[NSAttributedString alloc] initWithData:[string dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute:@(NSUTF8StringEncoding)}
documentAttributes:nil error:nil].string;
//输出结果: 1.为保障行程单邮寄的时效性,目前统一使用邮政EMS快递进行寄送。<br>2.请您完整填写收件地址、邮政编码及联系方式,如因信息错误、不全造成无法投递,东航概不承担责任,邮寄费用不退。

八. 检测在非主线程里更改UI

使用:PSPDFUIKitMainThreadGuard.m

http://files.cnblogs.com/files/yffswyf/PSPDFUIKitMainThreadGuard.zip     下载后将.zip改为.m

不需要做任何处理  只需要将该.m文件添加到项目中就行

九、UITextField 添加事件:UIControlEventEditingChanged 检测输入变化 而不是 UIControlEventValueChanged

十、使用Masonry对可换行 UILabel 布局,无需手动计算文本高度

  lbNotice.preferredMaxLayoutWidth = SCREEN_WIDTH - 20 * 2;  //最大宽度

  [lbNotice setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];

  lbNotice.numberOfLines = 0;

   [lbNotice mas_makeConstraints:^(MASConstraintMaker *make) {

    make.top.bottom.mas_equalTo(self);

    make.left.mas_equalTo(self).offset(-20);

  }];

十一.

AFNetworking 3.0:

设置并发数:有问题

  AFHTTPSessionManager *sessionManager.operationQueue.maxConcurrentOperationCount = 3;

  正确方式: 设置NSURLSessionConfiguration的属性HTTPMaximumConnectionsPerHost

  NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];

config.HTTPMaximumConnectionsPerHost = 3;

AFHTTPSessionManager.sessionManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:config];

详情见:AFNetworking/issues/3720

十二.

Quartz2D的绘制时,如果挨着边上画会出现抗锯齿机制

比如使用bezierPathWithRoundedRect: cornerRadius: 画圆角矩形

可以将边上的先往里收一点

十三.

Base58正则表达式判断    A-Z、a-z、0-9中,去除

0(数字0)、O(o的大写字母)、l( L的小写字母)、I(i的大写字母)

^[A-HJ-NP-Za-km-z1-9]+$

十四.

自动布局中,TableViewHeader中 加载网络图,给定一个占位图,之后每次通过sd_setImageWithURL:修改图片的实际尺寸。

会导致图片错位。然而重新进入页面又变成正常的了(图片已缓存)。   所以需要每次下载完成后reloadData;

另一个问题是,在UITableView reload的时候,如果实际高度大于estimatedRowHeight,会发生移位。

十五.

iOS >= 12.2 UIWebview 中视频 用户点击无法播放

设置 webView.mediaPlaybackRequiresUserAction = NO;

十六.

iOS < 11,部分cell固定高度,部分自适应。

同时需要实现以下代理,自动布局才正常。

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath;

『IOS』 遇到问题记录(长期更新)的更多相关文章

  1. SAP+DB2 糟糕的报表查询『ZCOR0015』 优化全程记录

    ZCOR0015的优化全过程记录文档 2015年3月,今天无意翻到这篇写于2010年7月的文档,回想那时的工作,毕业3年初出茅庐的我面对接触不多的SAP+DB2竟敢操刀动斧,自信满满. 虽然这过程一路 ...

  2. 『009』Python

    『004』索引-Language Python 准备更新中

  3. [原创] 【2014.12.02更新网盘链接】基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装

    [原创] [2014.12.02更新网盘链接]基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装 joinlidong 发表于 2014-11-29 14:25:50 ...

  4. iOS 多线程:『RunLoop』详尽总结

    1. RunLoop 简介 1.1 什么是 RunLoop? 可以理解为字面意思:Run 表示运行,Loop 表示循环.结合在一起就是运行的循环的意思.哈哈,我更愿意翻译为『跑圈』.直观理解就像是不停 ...

  5. 『Re』正则表达式模块_常用方法记录

    『Re』知识工程作业_主体识别 一个比较完备的正则表达式介绍 几个基础函数 re.compile(pattern, flags=0) 将正则表达式模式编译成一个正则表达式对象,它可以用于匹配使用它的m ...

  6. 『Json』常用方法记录

    json模块可以把字典结构改写为string然后保存,并可以反向读取字典 pickle模块则可以持久化任意数据结构 但是即使同样是字典数据结构,两个包也是有差别的, json字典value不支持其他对 ...

  7. 『Numpy』常用方法记录

    numpy教程 防止输出省略号 import numpy as np np.set_printoptions(threshold=np.inf) 广播机制 numpy计算函数返回默认是一维行向量: i ...

  8. 『Os』常用方法记录

    os.rename(name_old, name_new) 『Scrapy』爬取斗鱼主播头像 重命名函数os.rename比win下的重命名强多了,它可以对路径重命名达到修改文件位置的功效. os.p ...

  9. iOS-工作经验+资料分享(长期更新)

    在此记录工作中的一些经验和技术资料 长期更新 欢迎各位业内朋友指正.交流技术上的问题 0.苹果开发联盟电话 4006 701855 1.轻易不用使用tableViewController,因为改变他自 ...

随机推荐

  1. PowerDesigner表生成 EXCEL

    今天收到一个需求,要把数据库设计给一个excel版本的,百度出来一个脚本文件,很好用发现,留个纪念 在pd中,shift+ctrl+X,打开脚本运行,脚本如下,附件也留了一份: '********** ...

  2. form表单重置、清空方法记录

    myform 是form的id属性值 1.调用reset()方法 function fomrReset() { document.getElementById("myform"). ...

  3. Spring Boot 连接池

    配置方法 基于当前的1.5.2.RELEASE的Spring Boot. 依照官方文档,如果增加了如下依赖的配置,或者类路径中存在spring-boot-starter-jdbc的jar,那么已默认启 ...

  4. css样式表之边框

    方框和边框, 边框的顺序为, 上右下左 框的width和height不包括边距的宽度, 设置多少就是多少, margin代表外边距, padding代表内边距, border是边框, 边框border ...

  5. mysql中float、double、decimal三种类型,以及数值产生误差的原因

    单精度浮点数用4字节(32bit)表示浮点数,采用IEEE754标准的计算机浮点数,在内部是用二进制表示的,如:7.22用32位二进制是表示不下的,所以就导致不精确了,存取会出现误差. mysql中f ...

  6. js验证开头不为零的正整数

    WST.zhengZhengShuIn = function (className){ var rex = /^[1-9]{1}[0-9]*$/;//正整数 $("."+class ...

  7. 5.Javascript 原型链之原型对象、实例和构造函数三者之间的关系

    前言:用了这么久js,对于它的原型链一直有种模糊的不确切感,很不爽,隧解析之. 本文主要解决的问题有以下三个: (1)constructor 和 prototype 以及实例之间啥关系? (2)pro ...

  8. proc demo

    源文件test.pc #include <stdio.h> #include <string.h> #include <stdlib.h> #include &qu ...

  9. win8 app code中设置Resources里定义好的Style

    WPF中应该可以用这个: rectangle.Style = (Style)FindResource("FormLabelStyle"); 但 Win8.1 App是个精简框架,F ...

  10. 2018.08.19 NOIP模拟 number(类数位dp)

    Number 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 如果一个数能够表示成两两不同的 3 的幂次的和,就说这个数是好的. 比如 13 是好的,因为 13 = 9 + 3 + ...