iOS开发笔记(二)

前言

开发做笔记是好习惯,总结分享是巩固记忆。 遇到问题,思考其背后的原因、原理。

AFNetworking

  • 1、progress回调block,不在主线程;
  • 2、iPhone4+iOS7,progress回调异常;

AFNetworking 处理请求是在后台线程。

关闭键盘

在任意界面,dismiss键盘。(苹果的响应链设计)

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];

苹果的解释:

The object to receive the action message. If target is nil, the app sends the message to the first responder, from whence it progresses up the responder chain until it is handled.

Provisioning Profile

iOS Team Provisioning Profile是第一次使用Xcode添加设备时,Xcode自动生成的,它包含了Xcode生成的一个Wildcard App ID(*,匹配所有应用程序),账户里面所有的Devices和所有Development Certificates,如下图所示。因此,team中的所有成员都可以使用这个iOS Team Provisioning Profile在team中的所有设备上调试所有的应用程序。并且当有新设备添加进来时,Xcode会更新这个文件。 开发者QA

苹果的安全认证体系:如何用证书、APPID、profile来验证开发者身份、IPA包正确性? 基本要求:保证设备的安全;验证开发者身份。

UILongpressGestureRecognizer

给view添加UILongpressGestureRecognizer, 触发长按之后,UILongpressGestureRecognizer的识别范围也会包含其superView;同时,触发长按之后,UIButton的高亮状态就会消失。 这是因为识别为长按之后就会将UIButton的touch cancel掉,UIButton不会给长按设置highlighted状态。 在begin后设置UIButton的selected为YES,移出UIButton后设置为NO,这样就可以实现长按点击的效果。

- (void)longPressAction:(UILongPressGestureRecognizer *)recognizer {
    if (recognizer.state == UIGestureRecognizerStateBegan) {
        bLongPress = YES;
        [self sendAction];
        _dodgersBtn.selected = YES;
    }
    else if (recognizer.state == UIGestureRecognizerStateEnded) {
        bLongPress = NO;
        _dodgersBtn.selected = NO;
    }
}

        [_dodgersBtn setBackgroundImage:normalDodgerImg forState:UIControlStateNormal];
        [_dodgersBtn setBackgroundImage:focusDodgerImg forState:UIControlStateSelected];
        [_dodgersBtn setBackgroundImage:focusDodgerImg forState:UIControlStateHighlighted];
//三个按钮状态,都得设置。

Xcode

问题1:Your build settings specify a provisioning profile with the UUID “”, however, no such provisioning profile was found

按command+F,在这个文件中查找“PROVISIONING_PROFILE"。查找对应UUID的profile是否存在其他地方的引用。

问题2:Xcode 7.2 Organizer无限菊花、无限加载、卡顿如何解决?

1、证书相关:Preferences -> Accounts -> Account -> ViewDetails 2、文件过多:删除下列文件夹中无用文件 /Users/user/Library/Developer/Xcode/Products /Users/loyinglin/Library/Developer/Xcode

清理无用文件

问题3:nib but the view outlet was not set

nib文件 -> File's Owner -> command+4 >查看 Class 属性 检查Files's Owner的view是否有关联

问题4:A valid provisioning profile for this executable was not found

检查 Project 和 Target 的Code Signing Identity 与Provisioning Profile 设置是否一致。

问题5:debug时如何查看崩溃地址?

Category

用Category来分离业务时,在Category使用了ActionSheet。如果对应的ViewController也实现了- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex,逻辑就会存在问题。

category尽量不存在和原ViewController一致的方法。

RunLoop

RunLoop用来系统唤醒休眠线程,处理异步的事件,比如说url请求。 默认performSelectorOnMainThread:withObject:waitUntilDone:是在默认的Runloop mode,如果runloop处于其他mode(比如说tracking mode),它会等待runloop切换回默认的mode。 -performSelectorOnMainThread:withObject:waitUntilDone:modes:可以选择添加到的runloop mode。 dispatch_async(dispatch_get_main_queue(), ^{ })会尽可能快的去执行block,而不管modes。 每个线程都会关联到不同的RunLoop,线程的Runloop可以工作在不同的modes。 RunLoop博客 博客

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

给你的Windows加一个 「文件快速预览」功能

在macOS中,有一个非常好用的功能叫做Quick Look,当你在Finder想要查看一个文件时,不需要打开,只需要选中以后按空格即可预览大部分常见文件,Wi...

10240
来自专栏青青天空树

nodejs构建多房间简易聊天室

  本服务器需要提供两个功能:http服务和websocket服务,由于node的事件驱动机制,可将两种服务搭建在同一个端口下。

33010
来自专栏程序员的SOD蜜

电脑静音工作,又听不到12306的来票音乐,纠结啊 !但春节前工作多任务重,不能安心工作,就动手做个“无声购票弹窗”工具吧!

当你在办公室里面工作,周围有老板、领导,但又着急买春节的火车票怎么办? 开着电脑声音,出票火车鸣笛声没听到,QQ聊天工具等不和谐的声音放出来了怎么办? 为了不让...

30960
来自专栏大数据钻研

如何优雅地使用Sublime Text3

Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受。相比...

2.1K60
来自专栏DannyHoo的专栏

底牌项目中的选择牌谱上传功能--深刻理解UITableView复用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

9110
来自专栏iOS122-移动混合开发研究院

PureLayout,使用纯代码写AutoLayout

? ? ? ? ? ? 为iOS和OS X的自动布局最终的API -- 令人印象深刻的简单,非常强大。 PureLayout延伸的UIView /NSView...

32170
来自专栏小狼的世界

Mac下快捷键的收集整理

最近刚换用了Mac的笔记本,因为之前是Linux用户,感觉切换的过程非常平滑,但是难免有些小不适应,在使用过程中,遇到一些快捷键,收集了下来,与大家分享。

14050
来自专栏Kiba518

【我们一起写框架】MVVM的WPF框架之绑定(二)

上一篇我们已经一起编写了框架的基础结构,并且实现了ViewModel反向控制Xaml窗体。

16520
来自专栏雪胖纸的玩蛇日常

python3.6+django2.0 一小时学会开发一套学员管理系统demo

54250
来自专栏生信技能树

shell界面颜值知多少

颜色值设置: PS1中设置字符颜色的格式为:[\e[F;Bm],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。

29020

扫码关注云+社区

领取腾讯云代金券