糖果屋的世界
码龄14年
关注
提问 私信
  • 博客:219,840
    219,840
    总访问量
  • 81
    原创
  • 2,031,454
    排名
  • 17
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2011-04-20
博客简介:

遇见更好的自己

博客描述:
从不相信人生可以不劳而获,也许活的用力,却真心诚意绝不敷衍。
查看详细资料
个人成就
  • 获得29次点赞
  • 内容获得6次评论
  • 获得122次收藏
创作历程
  • 25篇
    2018年
  • 93篇
    2017年
成就勋章
TA的专栏
  • SWift
    6篇
  • tableView
    4篇
  • iOS面试
    8篇
  • iOS技术点
    69篇
  • 自动化测试
    1篇
  • git
    7篇
  • python
    1篇
  • 框架开发
    1篇
  • ARKit
    1篇
  • Xcode编译
    4篇
  • CocoaTouch
    1篇
  • 单元测试
  • 命令行
  • xcodebuild
  • swift
    7篇
  • homebrew
    1篇
  • 脚本
    1篇
  • Xcode技巧
    2篇
  • 内存管理ios
    5篇
  • 协议-ios
    1篇
  • 深浅拷贝
    1篇
  • 经典语录
    1篇
  • UI相关
    11篇
  • cocoa-应用程序教程
  • 网络请求
    5篇
  • cocoapods
    1篇
  • 多线程
    1篇
  • 数据加密
    2篇
  • 第三方库
    1篇
  • 编码
    1篇
  • 面向对象基础知识
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

352人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

函数式编程

作为iOS开发者,常用Masnory/SnapKitMasonry是常用的自动布局的第三方框架 Snapkit是Masonry团队打造的swift版本的自动布局框架一个典型的Masonry的语句make.centerY.equalTo(self).offset(100);就是这个”.”让Masonry更加鲜活的展示给了开发者。这就是链式编程。链式编程概要如果想...
转载
发布博客 2018.05.29 ·
282 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面向切面编程

切面可以简单地理解为嵌入不同函数中的功能相同的操作(打印调试信息等),每类功能相同的操作可以抽取出一个切面。 OOP:面向对象编程,针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。 AOP:面向切面编程,针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。 AOP是处理某个步骤和阶段的,从...
原创
发布博客 2018.05.28 ·
462 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

swift基础语法练习

import UIKitvar str = "Hello, playground"var num = 5num += 5class person {    var name = "zhangshanshan"    var address = "上海市浦东新区"    var age = 5    func updateInfo(age : Int
原创
发布博客 2018.05.28 ·
902 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏

UIViewController生命周期

UIWindow如果相当于画框的话,UIViewController相当于是一个画布。1.创建一个类继承于UIViewController2.loadView方法当访问UIViewController的view属性时,view如果此时是nil,那么VC会自动调用loadView方法来初始化一个UIView并赋值给view属性。此方法用在初始化关键view,需要注意的是,在view初始化之前,不能先调
原创
发布博客 2018.02.06 ·
2080 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

重写、覆盖、重载、多态

override->重写(=覆盖)、overload->重载、polymorphism -> 多态【重写】override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。 重写(覆盖)的规则: 1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2、重写方法的访问修饰符一定要大于被重写方法的
转载
发布博客 2018.02.06 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

常见的语言编码

常见的语言编码有:GB2312:简体中文编码,一个汉字占用2字节,在大陆是主要编码方式。BIG5:繁体中文编码。主要在台湾地区采用。GBK:支持简体及繁体中文,但对他国非拉丁字母语言还是有问题。UTF-8:Unicode编码的一种。Unicode用一些基本的保留字符制定了三套编码方式,它们分别UTF-8,UTF-16和UTF-32。在UTF-8中,字符是以8位序列来编码的,用一个或几个字节来表示一个
转载
发布博客 2018.02.06 ·
4224 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

iOS程序优化相关

1.tableview的优化优化:1.1 正确的复用cell。1.2 减少在返回每个cell里面的处理逻辑和处理时间。尽量将数据进行缓存和复用。1.3,尽量减少处理加载和计算的时间,不阻塞UI线程。1.4,尽量使用绘制每个cell。1.5,设置每个cell的opaque属性。1.6,尽量返回每行固定的height。1.7,在每个cell减少图形效果。1.8,分段加载数据。2.应用程序性能的调优1.用
转载
发布博客 2018.02.06 ·
190 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试题系列(七)--基础知识

1.事件响应(responder chain)只有继承了UIResponder的类才能响应touch事件,先是最上层的view响应事件,如果该view有视图控制器的话会是下一个响应者,否者就是该view的父视图,这样至上而下传递事件。直到单例UIWindow对象,最后是单例UIApplication对象以终止,UIApplication的下一个响应者是nil,已结束整个响应循环。事件在传递过程
转载
发布博客 2018.02.06 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

渐变色

给视图添加渐变色,示例如下:rect.origin.y = CGRectGetMaxY(headView.frame); rect.size.height = 50; UIView *titleView = [[UIView alloc] initWithFrame:rect]; CAGradientLayer *gradient = [CAGradientLayer lay
原创
发布博客 2018.01.26 ·
360 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

UIColor,CGColor,CIColor三者的区别和联系

一、UIColor  UIColor是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透明度的值,它的颜色空间已经针对IOS进行了优化。UIColor包含了一些类方法用于创建一些最常见的颜色,如白色,黑色,红色,透明色等,这些颜色的色彩空间也不尽相同(白色和黑色是kCGColorSpaceDeviceGray,红色的色彩空间是kCGColorSpaceDeviceRGB)
转载
发布博客 2018.01.19 ·
1744 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试题系列(六)-基础知识

1.多线程、特别是NSOperation和 GCD的内部原理。2.运行时机制的原理和运用场景。3.SDWebImage的原理。实现机制。4.如何解决TableView卡的问题。tableView 滑动卡的问题主要是因为:从缓存中或者是从本地读取图片给UIImage的时候耗费的时间。需要把下面的两句话放到子线程里面: NSData *imgData = [NSData dataWithContents
原创
发布博客 2018.01.18 ·
197 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SWift入口分析

1.swift为什么不需要main在c/c++及其它语言中都有一个main函数,程序从main作为起点,开始执行程序,如下:int main(int argc, const char * argv[]) {printf("Hello, World!
");return 0;}main函数实际上是一个特殊的函数,为了能找到程序入口,大多楼语言都约定main()函数作为入口。那么
转载
发布博客 2018.01.17 ·
1682 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

fallthrough的用法注意总结

在swift的switch中,case后面加了fallthrough的用法,就和OC的case后面没加break的用法是一样的!使用fallthrough需要注意的有:1.加了fallthrough后,会直接运行【紧跟的后一个】case或default语句,不论条件是否满足都会执行var age = 10switch age {case 0...10: print("小朋友")
转载
发布博客 2018.01.17 ·
21586 阅读 ·
5 点赞 ·
1 评论 ·
14 收藏

SWift基本语法(二)

一 可选类型知识点补充例一 :强转并且制定类型let str01 = "23" //打印结果: "23"let age : Int? = Int(str01) //打印结果 :23问题 : 该例子转化的结果为什么需要用可选类型来接收?解答 : 因为很有可能是转化不成功的,如果此时不用可选类型来接收的话,万一转化失败,那么该值就为空(nil),如果不选择可选类型来接收,程序会崩溃.例二 : 获取
转载
发布博客 2018.01.17 ·
342 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

swift基本语法(一)

import UIKitvar str = "Hello, playground"var num = 5num += 5class person {var name = "zhangshanshan"var address = "上海市浦东新区"var age = 5 func updateInfo(age : Int , address : String) {
原创
发布博客 2018.01.16 ·
511 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

面试题系列(五)-网络协议

1.UDP/TCP的区别UDP 是用户数据报协议: 主要用在实时性要求高以及对质量相对较弱的地方,但面对现在高质量的线路不是容易丢包除非是一些拥塞条件下, 如流媒体 TCP 是传输控制协议:是面连接的,那么运行环境必然要求其可靠性不可丢包有良好的拥塞控制机制如http ftp telnet 等 2.什么是三次握手与四次挥手?三次握手 第一次握手:建立连接时,客户端发送同步
转载
发布博客 2018.01.16 ·
1476 阅读 ·
1 点赞 ·
0 评论 ·
19 收藏

面试题系列(四)-数据解析

1.JSONKit、SBJson、TouchJSON和原生的区别?JSONKit、SBJson、TouchJSON 性能从左到右,越右越差,主要就是性能上的差别2.分析json、xml的区别可读性方面:基本相同,xml的可读性比较好可扩展性方面:都具有很好的扩展性编码难度方面:相对而言:JSON的编码比较容易解码难度:json的解码难度基本为零,xml需要考虑子节点和
转载
发布博客 2018.01.16 ·
268 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试题系列(三)-socket

1.socket编程简述它是基于TCP/IP协议,Socket就是一个可以连通网络上不同计算机程序之间的管道,把一堆数据从管道的A端扔进去,则会从管道的B端(也许同时还可以从C、D、E、F……端冒出来)。管道的端口由两个因素来唯一确认,即机器的IP地址和程序所使用的端口号。Socket可以支持数据的发送和接收,它会定义一种称为套接字的变量,发送数据时首先创建套接字,然后使用该套接字的sendto等方
转载
发布博客 2018.01.16 ·
2063 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

面试题系列(二)-http请求

1.http请求方式?HTTP的请求方式有3种,分别是:POST、GET、HEAD。 POST和GET方法是用于数据发送的。POST 将要发送的数据单独放在一个流中进行发送,而不是附加在URL地址后面,这样做的好处是这些数据不会出现在URL地址中。GET 将要发送的数据直接添加在URL后面,如:www.sina.com.cn?username=”“&password=”“,这样的
转载
发布博客 2018.01.16 ·
560 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

单例

创建单例的两种方式只要使用其中一种 + (id)defaultManager { // 1. 第一种方式 //静态变量只会初始化一次 static Manager *sharedInstance = nil; //每次调用defaultManager的时候都返回同一个对象 if (sharedInstance == nil) {
原创
发布博客 2018.01.11 ·
166 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多