手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
iOS
自己踩过的坑
自己踩过的坑
作者:
lixiaoshuai
| 来源:发表于
2016-08-19 23:33 被阅读38次
iOS 开发中你是否遇到这些经验问题(一) - CocoaChina_让移动开发更简单
iOS 8个实用小技巧(总有你不知道的和你会用到的)
1.switch 中的case要用大括号括起来
2.在Objective-C中向nil发送消息是安全的
3.自定义单元格时,经常将控件家在contentview上。如果在防止重用,移除子视图时,将cell.contentview.subviews写成了cell.subviews
4.懒加载中将if (!_xxxx)中的_删掉了
5.懒加载中的self.xxx 和_xxx的区别。(一个是get方法 一个是实例变量 , 懒加载中一定要调get方法)
6.控件初始化添加后再视图上不可见(80%是frame某一个值设置的有问题)
7.自己添加.pch文件步骤
a:创建文件(xxxxxxxx)(最好创建在跟项目名同名的文件夹中,即创建前点击下那个文件夹下的一个区域)
b:在target的build phase中search language 会看到APPLE LLVM 7.1 language
在这个目录下会有Precompile Prefix Header 将其设置为yes
c:在Prefix Header 中添加自己的.pch文件的路径 其中$(SRCROOT)代表项目的路径 在这之后拼接项目内路径
8.a:(iOS9 及以下)允许http协议的借口的设置在项目的.plist文件中添加App Transport Security Setting(ATS) ,在它的子目录下添加 Allow Arbitrary Loads 并设置为yes。
b:iOS10中,无法设置Allow Arbitrary Loads ,解决方案如下。
1)、在项目的info.plist中添加一个Key:App Transport Security Settings,类型为字典类型。
2)、然后给它添加一个Exception Domains,类型为字典类型;
3)、把需要的支持的域添加給Exception Domains。其中域作为Key,类型为字典类型。
4)、每个域下面需要设置3个属性:NSIncludesSubdomains(yes)、NSExceptionRequiresForwardSecrecy(no)、NSExceptionAllowsInsecureHTTPLoads(yes)。
9.删除项目的资源文件时,要在项目中删除(不能在show in finder中删除),会导致警告。
10.imageNamed方法初始化的image实例,如果name的图片不存在,初始化的值为nil。
11.向数组中插入nil会崩。
12.关于collectionviewflowlayout类的布局思路之一:
a:声明一个数组属性,用于承装所有的布局属性
b:在prepare方法中创建所有cell的index path并调用layoutforindexpath方法,为每一个相应的layoutattr设置相应的值,
c:在layoutforrect方法中,返回这个数组。
13.待解决:对于collection view来说,每一个cell是如何完成初始化的。
答:在cellforindexpath方法中,忘记了if(!cell){初始化cell的代码},
14.UISearchBar继承于UIView,与tableview相似的用法。通过代理实现回调的一些处理。
15.在自定义的tableviewcell中,它的frame的值仍然是默认的值(44),需要在设置他的字视图之前,将它的值改成需要的值的大小。
16.防止tableview重用时,将content view的字视图移除后,设置好cell的字视图的属性后,要将这些子视图重新添加到cell.contentView上。
17.button的内部其实挺复杂的。(继承于UIControl)
其中imageedgeinset的属性是对于image属性。对image view,back image 没有效果。
18.在block中修改局部变量的值,需要用__block进行修饰。用到self时,要用__weak进行修饰。
19.-drawrect方法不要用。
20.只读属性的值如何更改?(需要使用运行时的东西,具体做法不详)
21.开发过程中,常用的代码要形成代码块。增加效率。
22.永远是眼高手低
23.先创建layout类,在写collection view。collectionview初始化的时候一定记得注册单元格。会崩。
24.定义全局的静态变量写在@implementation后
25.在一个控制器中,表的作用仅仅是显示数据停留在界面层的作用。不应该通过表的属性获取一些信息值。信息值应该存在于有关的datamodel类中,专门做信息的传递。通过cellforindexpath方法获取的cell,如果这个cell不再屏幕范围内,会返回为nil。
26.array初始化后添加的字符串做的是值的拷贝。例如数组添加了一个变量,然后在改变着歌变量的值,数组中的值不会随之改变。因为是做的值的拷贝。
27.刚刚编译时突然报红No such file or directory: '/Users...,在项目里搜对应文件发现它就静静的在那,没有任何异常,解决方法:删掉TARGETS - Build Phases - Compile Sources 里白框的文件
28.appdelegate 的类目的使用。对于delegate可以使用category的方式对其进行分类。更加清晰。
app delegate 的分类处理
29.对于iOS7以及更新版本 ,textview 输入时上下跳动的bug。
iOS7以后UITextView 技巧 - 奋进的闹钟 - 博客园
坑1:
iOS7及以上的版本上,UITextView出现这样的问题:弹出键盘时,没输入任何文字,但是光标位置不是在最上方。
解决方案: iOS7以后新增了一个属性automaticallyAdjustsScrollViewInsets,将其置为NO即可。别忘了加版本判断。
if (IOS7_And_Later) {
self.automaticallyAdjustsScrollViewInsets = NO;
}
坑2:
iOS7及以上的版本上,UITextView输入中文时,在输入多行后,光标有时会上下跳动,输入文字的时候内容有时会往上跳,光标都显示不出来。这个bug坑死好多人啊,特别是做聊天输入框的时候,不得已找一些非正常的方法解决。从网上找的各种解决方案都不行。
复制代码
- (void)textViewDidChangeSelection:(UITextView *)textView
{
//fix ios7 bug (modified by 老岳).
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
CGRect r = [textView caretRectForPosition:textView.selectedTextRange.end];
CGFloat caretY = MAX(r.origin.y - textView.frame.size.height + r.size.height + 8, 0);
if (textView.contentOffset.y < caretY && r.origin.y != INFINITY) {
textView.contentOffset = CGPointMake(0, caretY);
}
}
}
30.检查IDFA的方法:
步骤:
1、打开终端cd到要检查的文件的根目录。
2、执行下列语句:grep -r advertisingIdentifier . (别少了最后那个点号)。
31.aruchive项目时,弹出Not a PNG filCommand copypng emitted errors but did not return a nonzero exit code to indicate failure。项目图片问题。
可能的原因a:项目中有图片不是png图片,将图片格式华为png格式。
b:Two targets were added for same image. Goto project target ->Build Phases -> Copy Bundle Resources and search for your image file name.
32.UIScrollView 的几种属性的含义。(很低级,但是,知之为知之,不知为不知,是知也。没那么简单)
contentSize :(CGSize)视图内容大小。展示的主要区域
contentInset:(UIEdgeInset)视图缩进的数量
contentOffset:(CGPoint)视图偏移量(他的值是视图内容的坐上角和scrollView的左上角的差值(用小demo测试过),初始化后暂时为(0,0))
最后,scrollview滚动区域大小是 contentSize contentInset 的总和。
33.项目刚被创建后的suprooting Files的无力文件夹式不存在的。因此在写pch文件的路径时候要注意。
34.将文件夹拖入项目中时要勾选项目意义
a:group b:Folder reference
1. Group 分组(黄色)
在xCode的工程中,右键New Group, 即可创建,也就是黄色的文件夹。
工程中想要分类管理的文件,可以分门别类的放在不同的group里面
group本身不影响文件的物理存放,也就是实际存放位置,只是在Project文件中
2.Folder reference(蓝色)
在管理大量资源文件时候,利用foler reference可方便和实际文件夹构造保持一致.
tips:Folder reference 形势拖入时,文件夹下的文件路径又可能找不到,在build setting 的搜索 search path 将 header search path 中添加某一特定的文件路径即可。例如:$(SRCROOT)/testOne/Category
35.经常遇到xcode8打不开项目的问题。(打不开特定项目,或打开项目无响应)
电脑上安装了其他版本的xcode(我安装了Xcode7.3),卸载其他版本的Xcode后,可以正常打开。
36.uiwebview (继承于UIView) 没有bounce属性。设置不滑动代码为 [(UIScrollView *)[[webView subviews] objectAtIndex:0] setBounces:NO];
37.webview 加载本地html5文件urlstring 需要拼接路径。
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"xxx/xxx/xx.html" relativeToURL:[[NSBundle mainBundle] bundleURL]]]];
38.学校是可以申请公司级别的开发者账号的。
公司和教育机构必须提供为其法人实体注册的 D-U-N-S Number;而对于政府组织,D-U-N-S Number 则是可选信息。如果您以个人身份注册,则无需 D-U-N-S Number。
39.CADispalyLink 的区别 NSTimer
最主要的是刷新的频率不同。前者和页面刷新的频率相同(每秒60次)。后者可以自定义刷新间隔。
因此前者适合对页面做实时的更新。后者是可循环处理相同任务及其他场景。
40.对mask(遮罩)的理解(果然还是看图说话什么的管用)
遮罩的理解
关于遮罩的解释。会显示父视图中自己本身不透明的区域
将一个layer设置为mask的时候,该 layer会被从其父视图中移除
设置mask时,mask的坐标系统会变为其对象的坐标系统
41.iOS中的随机数
iOS 随机数
1.arc4random() 需要自己取模。
2.arc4random_uniform(x) 产生[0~(x-1))范围内的随机数;(包括0)
42.要对cell做内容改动时,不要直接获取 cell并修改属性值。要先修改数据源,然后通过cellforrowatidexpath对cell的展示内容进行更新。
43.脱.app文件到iTunes生成ipa时候,要确保编译通过,否则无法产生正常的包。
相关文章
网友评论
iOS
本文标题:
自己踩过的坑
本文链接:
https://www.haomeiwen.com/subject/kjogjttx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
iOS
摄影
故事
互联网
读书
旅行
热点阅读
短篇征稿(爱情)《旋念》
永不言弃
吐槽完MX6,才发现PRO5才是魅族真旗舰
盘点那些让人垂涎欲滴的日式点心
判断ListView是否滑动到顶部
所谓人生无悔都是骗人的
想在股市中赚钱吗?教你如何打破惯性思维
网易云音乐产品体验报告
网格线
眼前的一切源自久远的路 ——杜兰特转会给我们的人生启示
iOS
IOS SizeClass 和 Autolayout 适配各种设
iOS 后台运行实现总结
iOS 删除已经配置的类库和移除CocoaPods
iOS开发证书与配置文件的使用
iOS--LaunchImage启动页设置及问题解决
iOS的MyLayout布局系列-流式布局MyFlowLayou
[iOS 开发] C字符串和NSString字符串对象的相互转换
iOS UITabBarController简单使用-创建、属性
断言(NSAssert)的使用
UIView的生命周期总结
网友评论