未整理的知识点

hybride APP 设计思路 http://www.jianshu.com/p/2c296dcb53ae

二十一种 设计模式
http://blog.raozhizhen.com/post/2016-05-22

生成器
https://my.oschina.net/daguoshi/blog/504084
生成器 原理解释 和工厂模式的对比
http://blog.csdn.net/cctvzxxz1/article/details/39967961
生成器 模式讲解
http://www.jianshu.com/p/5d34a496e517

既然不信 何必苟且 既然相爱 何必怀疑

IOS 10 适配 系列0 iOS10 UserNotifications 框架解析
http://blog.csdn.net/jiang314/article/details/52502377

切记,要在不同的模拟器上运行一下再上架
切记,适配的图片要注意调整,要在不同的模拟器上进行调整

【Git入门之六】远程仓库
http://blog.csdn.net/jackystudio/article/details/12271839

Swift3.0 新特性
移除了取余运算符的浮点数取余功能

swift3.0 语法改变 关于字符串
http://blog.csdn.net/u012903898/article/details/52865690?locationNum=14&fps=1

https://itunes.apple.com/app/id1165667288

Swift3.0学习笔记----遍历字符串
http://blog.csdn.net/a1610770854/article/details/52770073

app图标生成软件
http://www.cocoachina.com/bbs/read.php?tid=290247

加载xib 文件遇到的问题
this class is not key value coding-compliant for the key view
解决: 在加载controller 的xib 文件时候, 直接用 alloc init 即可

如何把代码 推送到远程git 上
1.在gitos 上创建项目
2.打开xcode 选择checkout 到本地
3.在checkout 到本地的文件夹中创建新项目,就可以push了

UITabBarItem 取消图片渲染的3种方式
http://www.cnblogs.com/MyBlogZH/p/5522728.html

有些三方库,pods 和 Carthage 都没有效果 这个时候就要考录手动拖入库 有可能会报错,去百度就行
或者三者同时进行,哪个成功了就用哪个
打印一个视图包含了哪些子视图
po [[self view] recursiveDescription]

后台记得把 method 写到表格中,方便我复制 不然老是点到URL跳转浏览器
后台 每个接口的errorDescribe 写清楚,移动端只提示后台返回的每个接口的errorDescribe 以后就是要改,后台那边改一下移动端什么都不用变

二维码生成 地址http://www.wwei.cn
所有文档必须要有日期

是小写 errorCode 还是大写 ErrorCode 后台老接口 改起来不方便 后台返回的是大写的ErrorCode 其他的都是小写的

获取版本更新 是小写的ios 不是iOS

码]iOS判断是模拟器还是真机 跳至 [1] [全屏预览]

一定要注意,检测更新的appName 和 推送证书的(发给后台的证书)名字,还有pushId里面的appName(我们公司叫推送尾缀) 要保持一致,不然会收不到推送信息,或者检测不到新版本等

if TARGET_IPHONE_SIMULATOR//模拟器

elif TARGET_OS_IPHONE//真机

endif

学习轮播图
/*< 这是注释/
很好看的北京颜色 白棕色 [UIColor colorWithRed:0.275 green:0.350 blue:0.159 alpha:0.223];
UIViewContentMode 图片显示模式 http://www.jianshu.com/p/7a286c84198b

车乐邦 使用指南

当你说的很爽的时候,记得这很危险!

探探UIViewController 声明的周期的理解和 思维的扩展
load
initialize
init(initWithNibName)
loadView
viewWillDidLoad
viewWillAppear
viewDidAppear
viewWillDisappear
viewDidDisappear
viewWillUnload
viewDidUnload
dealloc

Objective-C 深入理解 +load 和 +initialize http://www.jianshu.com/p/872447c6dc3f
load load 是在被添加到 runtime 时开始执行
而且 调用顺序
父类最先执行,然后是子类,最后是 Category

initialize
收到第一条消息前,可能永远不调用
覆盖类中的方法,只执行分类的实现

init(initWithNibName)
只做初始化操作
initWithFrame
只做初始化操作,因为传进来的frame 经常为0 最好不要在这里面设置子view的frame
initWithCoder
从xib/storyboard中加载 不要在这里面设置frame

awakeFromNib
从文件中加载,可以在这设置frame
l
loadView

dealloc
不要调用[super dealloc] http://www.jianshu.com/p/009759373271 http://www.jianshu.com/p/5e70abc61530
释放代理

http://www.jianshu.com/p/ab39683f94ae
控制器的生命周期
控制器的加载过程

iOS 应用程序的生命周期
main 函数入口

应用程序的框架
layoutIfNeeded
setNeedsLayout 这两个的区别

Main Run Loop

iOS应用程序的生命周期,状态切换 MVC 讲解 http://www.jianshu.com/p/aa50e5350852

车乐邦Bug 每次升级的时候都会丢失自定义铃声

iOS 事件 https://developer.apple.com/library/content/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/Introduction/Introduction.html
事件: 触摸屏幕,摇晃手机 远程多媒体控制

ImageProcess 图片加工

Paypal 开发中文文档 http://download.csdn.net/detail/u014220518/9606515
Paypal iOS 集成教程1.http://blog.csdn.net/u014220518/article/details/52239375
集成教程2.http://blog.csdn.net/aas319/article/details/50549995
集成教程3.http://www.jianshu.com/p/bfe55c889645
集成教程4.http://www.jianshu.com/p/812d9f010b5b
Paypal demo https://github.com/paypal/PayPal-iOS-SDK
Paypal API https://developer.paypal.com/docs/api/

iOS中的URL Scheme http://git.devzeng.com/blog/ios-url-scheme.html

ios开发之使用bundle来管理资源文件 http://blog.csdn.net/chenyong05314/article/details/18226301

使用 pod install 还是 pod update ? http://www.jianshu.com/p/a977c0a03bf4

iOS中的静态库与动态库,区别、制作和使用 http://www.jianshu.com/p/90f5ec723175

iOS10 给控件切圆角. http://www.jianshu.com/p/50b45ac97ae3

iOS开发 之 不要告诉我你会用NSTimer! http://www.jianshu.com/p/330d7310339d

Xcode6在iPhone5+iOS7模拟器上编译,上下有黑边问题 http://blog.csdn.net/gf771115/article/details/43450681

Xcode8设置好约束,但是打印出来全部是(0,0,1000,1000)
在- (void)viewDidLayoutSubviews 中
加上这句 你的控件view layoutIfNeed
今天也遇到这个问题,刚刚解决的
还是不懂可以去我的简书留言
http://www.jianshu.com/users/6b0da6cb659c/latest_articles
或者

  • (void)awakeFromNib {

    // iOS10 不加会{{0,0},{1000,1000}}
    [self layoutIfNeeded];
    }

awakeFromNib 不调用 (已经备份到简书)
当建立控制器并勾选XIB的时候,当是控制器的时候,不会走- (void)awakeFromNib方法,需要在- (void)viewDidLoad里面书写相应的操作。只有当建立UIView的时候并勾选XIB的时候才会走- (void)awakeFromNib方法。切记切记。

Query 查询

单元测试中:
XCTAssertEqual(a1, a2, format...)判断相等(当a1和a2是 C语言标量、结构体或联合体时使用,实际测试发现NSString也可以);
只有当a1 a2不相等的时候才会生效

app更新后,没有收到deviceToken
app 更新后, 自定义铃音失效

非正式协议,即 NSObject 的分类

不要在 init 和 dealloc 中使用 self.property 的方式来访问成员变量
高内聚,低耦合

accessor
英 ['əksesər] 美 ['əksesər]
n. [计] 存取器;访问器

fast-forward ['fɑ:st'fɔ:wəd] Embedded Image

n. 快进功能

swift

输入输出参数 In-out Parameters
函数内部参数默认是常量,不允许改变。
在函数参数的类型前加上inout 关键字 ,此参数可以当做变量使用,不但可以改变内部参数同时更改了传进来的实参
下面的代码,不但intValueOne 的值变了,同时one的值也变了
从函数调用就能看出 swap(&one, &two) 这里传入的是指针,联想到c语言 指针作为函数参数,现在就很好理解了
func swapTwoInts(intValueOne: inout Int, intValueTwo: inout Int){

let temp : Int = intValueOne
intValueOne = intValueTwo
intValueTwo = temp

}
var one : Int = 100
var two : Int = 50
swap(&one, &two)
print("one = (one) two = (two)")
//one = 50 two = 100

方法中有block做参数

方法调用 把block的实现写入,block中的参数是该方法内部传入的,可以把它看做反向传值,在这里吗做我们希望的操作
扩展:我们可以在代理方法中加入block参数
[DXQR_Networking loginWithUserInfo:self.userManager complete:^(NSDictionary *returnObjector, DXNetworkingStatus status) {这里面可以做一些操作}]

方法实现:这里block作为传进来的参数 直接给block传值就成

  • (void)loginWithUserInfo:(DXQR_UserManager *)user
    complete:(void (^)(NSDictionary *, DXNetworkingStatus))complete {

         complete(returnObject, DXNetworkingStatusSuccess);
    

}

读懂奔溃日志 https://developer.apple.com/library/prerelease/content/technotes/tn2151/_index.html
程序奔溃之后,奔溃日志会存储在手机上
低内存奔溃会有内存警告
低内存不需要符号化(Symbolicating)
Debug Symbol (dSYM) file
UUID含义是通用唯一识别码
appStore 发给你的奔溃文件是未经过 符号化的(低内存不需要符号化(Symbolicating)) 你需要自己去符号化他
获取手机上的奔溃信息:https://developer.apple.com/library/content/qa/qa1747/_index.html
通过TestFlight 出现的奔溃文件被上传到appStore
Bitcode 是编译程序的中间产物,方便appStore 根据bitcode把崩溃信息传到开发者手中
未符号化的奔溃日志 中看不到方法名 里面只有16进制的地址

奔溃日志分为三种:
全部没有符号化:文件中没有一个方法名
部分符号化 :文件中有一部分方法名
全部符号化 :文件中全部是方法名

xcode 符号化奔溃日志的要求
1.本地必须要有 binary文件和dSYM文件

http://www.cocoachina.com/ios/20141219/10694.html
什么是 dSYM 文件

Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件,位于 /Users/<用户名>/Library/Developer/Xcode/Archives 目录下,对于每一个发布版本我们都很有必要保存对应的 Archives 文件 ( AUTOMATICALLY SAVE THE DSYM FILES 这篇文章介绍了通过脚本每次编译后都自动保存 dSYM 文件)。

dSYM 文件有什么作用
当我们软件 release 模式打包或上线后,不会像我们在 Xcode 中那样直观的看到用崩溃的错误,这个时候我们就需要分析 crash report 文件了,iOS 设备中会有日志文件保存我们每个应用出错的函数内存地址,通过 Xcode 的 Organizer 可以将 iOS 设备中的 DeviceLog 导出成 crash 文件,这个时候我们就可以通过出错的函数地址去查询 dSYM 文件中程序对应的函数名和文件名。大前提是我们需要有软件版本对应的 dSYM 文件,这也是为什么我们很有必要保存每个发布版本的 Archives 文件了。
如何将文件一一对应
每一个 xx.app 和 xx.app.dSYM 文件都有对应的 UUID,crash 文件也有自己的 UUID,只要这三个文件的 UUID 一致,我们就可以通过他们解析出正确的错误函数信息了。

1.查看 xx.app 文件的 UUID,terminal 中输入命令 :

dwarfdump --uuid xx.app/xx (xx代表你的项目名)

2.查看 xx.app.dSYM 文件的 UUID ,在 terminal 中输入命令:

dwarfdump --uuid xx.app.dSYM

3.crash 文件内第一行 Incident Identifier 就是该 crash 文件的 UUID。

使用下面的命令,找到奔溃的方法名和类名
atos -arch armv7 -o APPNAME.app/APPNAME MEMORY_LOCATION_OF_CRASH

xcrun atos -arch arm64 -o /Users/achen/Desktop/crashAnalyze/111.app.dSYM/Contents/Resources/DWARF/来访通 -l 0x100054000 0x1000a5f34
最后一个是地址,倒数第二个是偏移

binary image 二进制映象

第三方crash 分析
腾讯的bugly 集成地址https://bugly.qq.com/iosfast

用户主目录,就是那个小房子图标标识的目录

有时候,浏览器下载东西太慢老是下载失败,可以考虑使用迅雷来下载

from email.MIMEText import MIMEText
from import : 从车里把矿泉水拿出来,给我
import : 把车给我

Python之reload函数

reload()函数将以前导入过的模块再加载一次。重新加载(reload)包括最初导入模块时应用的分析过程和初始化过程。这样就允许在不退出解释器的情况下重新加载已更改的Python模块。

若干注意事项:

  1. 如果模块在语法上是正确的,但在初始化过程中失败,则导入过程不能正确地将模块的名字绑定到符号表中。这时,必须在模块能被重新加载之前使用import()函数加载该模块。
  2. 重新加载的模块不删除最初旧版本模块在符号表中的登记项。
  3. 如果一模块利用from。。。import。。。方式从另一模块导入对象,reload()函数不重新定义导入的对象,可利用import。。。形式避免这个问题。
  4. 提供类的重新加载模块不影响所提供类的任何已存实例---已存实例将继续使用原来的方法定义,只有该类的新实例使用新格式。这个原则对派生类同样适用。

http://www.zg118.com:7998/push?key=V4.gps889.13725562702,a195ed82055a606848454cb9c7b5e3128754301cf804890b73ac404567400f29,gps889={"infoType":"1","from":"V4.myautogps.9e27078a372f9228d53b6dc3596548f1c4cbd9bb24ee1c6e37a515427d367fda","date":"2015-12-21T03:49:51","data":[{"info":"","title":"ACC报警","classify”:"3","macid":"Q15D1063","OffStr":”ACC报
警"}]}&svr=xyXinguangheng&tokenid=S6&isdb=1&msg=梁行你好&sound=warning.caf&userInfo={"type":1,"data":{"type":16,"id":"123"}}

HTTP超文本传输协议-HTTP/1.1中文版 http://javadocs.wikidot.com/hypertext-transfer-protocol-http1-1

[iOS翻译]《iOS 7 Programming Pushing the Limits》系列:你可能不知道的Objective-C技巧 http://www.cnblogs.com/yangfaxian/p/3825336.html
《iOS 7 Programming Pushing the Limits》系列:你可能不知道的ObjC技巧 http://www.cocoachina.com/ios/20140709/9073.html

手把手教会自定义下拉刷新控件
http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=2652155574&idx=2&sn=ff6ea8827841f29df1259ee93d7490eb&chksm=8046ced7b73147c188bb3d5b7cff16fea7f035c1edbc1d1003d123aeab5e3dd386ef820990bb&mpshare=1&scene=23&srcid=1116pl5lMpHjoVs9UOkd0hcJ#rd

iOS项目自动化构建实践(Jenkins+Pgyer+Email
http://www.jianshu.com/p/32aa42f57bb3

mac ssh key 的获取 http://blog.csdn.net/yhqbsand/article/details/22763411
终端命令 :ssh -v 查看ssh版本信息,如果系统安装了ssh就会有版本信息打印,如果没有打印则说明电脑中没有安装ssh
ssh-keygen 一路 enter 下去,没有必要设置密码
这个时候,会提示你Your identification has been saved in /Users/mac/.ssh/id_rsa.
Your public key has been saved in /Users/mac/.ssh/id_rsa.pub.
说明ssh key 已经生成,

        如何打开id_rsa.pub 文件(因为我们的ssh key)存储在这个文件中  https://www.zhihu.com/question/26071345
        终端: cd /Users/mac/.ssh   (id_rsa.pub 在.ssh文件夹中)
        终端: more id_rsa.pub (即可打印ssh key)

        或者 直接复制id_rsa.pub文件内的信息
        终端:pbcopy < ~/.ssh/id_rsa.pub   http://www.jianshu.com/p/31cbbbc5f9fa/

id_rsa id_pub 公钥与私钥 http://blog.csdn.net/diyxiaoshitou/article/details/52471097
id_rsa 私钥 id_rsa.pub公钥

在oschina上添加SSH公钥 http://blog.csdn.net/dlg1992/article/details/51290604
创建公钥的目的: 使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(git的remote要使用SSH地址)1.打开终端进入.ssh目录
cd ~/.ssh
如果.ssh文件夹不存在,执行指令自动创建
mkdir ~/.ssh
2.生成RSA密钥对
ssh-keygen -t rsa -C "你的邮箱@xxx.com"
为了方便全程回车即可(不用输入ras文件名及密码)
3.查看公钥内容
cat ~/.ssh/id_rsa.pub
4.将公钥内容复制并粘贴(注意:公钥内容以ssh-rsa开头,你的邮箱结尾)
粘贴地址 http://git.oschina.net/profile/sshkeys
5.添加公钥完成后进行测试公钥
测试SSH链接
ssh -T git@git.oschina.net
当终端提示welcome to Git@OSC ... 表示链接成功

    至此以后只要拷贝ssh链接地址,然后利用git指令即可进行相关操作!

find中的钥匙串文件:finder-菜单栏点击前往-长按住option键选择资源库-在里面选择keychain的文件夹
我们选择login.keychain 文件(对应钥匙串中的登录选项,里面储存了所有的开发证书相关)

QQ邮箱的POP3与SMTP服务器是什么 https://zhidao.baidu.com/question/368402993166895164.html

jenkins 卸载插件之后,重启下就可以了

iOS Provisioning Profile(Certificate)与Code Signing详解 http://www.cnblogs.com/lrr0618/p/5388350.html

linux下echo命令详解 http://www.cnblogs.com/perfy/archive/2012/07/24/2605903.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容