自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孙世杰的博客

iOS 开发 读书笔记 心路历程

  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 [读书笔记—学习方法]《如何高效学习》- 斯科特·杨

整体性学习在于创造信息的网络,一个知识与另一个知识相互关联,那些相互关联的知识网络使你真正做到对知识的完全理解,从而轻松地驾驭知识。

2015-08-08 00:01:48 6486

原创 使用Block实现KVO

在iOS开发中,我们可以通过KVO机制来监听某个对象的某个属性的变化。用过KVO的同学都应该知道,KVO的回调是以代理的形式实现的:在给某个对象添加观察以后,需要在另外一个地方实现回调代理方法。这种设计给人感觉比较分散,因此突然想试试用Block来实现KVO,将添加观察的代码和回调处理的代码写在一起。在学习了ImplementKVO的实现以后,自己也写了一个:SJKVOControllerSJKVO

2017-05-15 08:56:32 2995

原创 《Objective-C 高级编程》干货三部曲(三):GCD篇

我们知道在iOS开发中,一共有四种多线程技术:pthread,NSThread,GCD,NSOperation: - 前两者是面向线程开发的多线程技术,需要开发者自己去维护线程的生命周期,比较繁琐。 - 后两者是面向队列开发的多线程技术,开发者仅仅定义想执行的任务追加到适当的Dispatch Queue(队列)中并设置一些优先级,依赖等操作就可以了,其他的事情可以交给系统来做。在这一章里,作者主

2017-04-24 09:52:48 2972

原创 《Objective-C 高级编程》干货三部曲(二):Blocks篇

这一章讲解了Block相关的知识。因为作者将Objective-C的代码转成了C++的代码,所以第一次看的时候非常吃力,我自己也不记得看了多少遍了。这篇总结不仅仅只有这本书中的内容,还有一点在其他博客里看过的Block的相关知识,并加上了自己的理解,而且文章结构也和原书不太一致,是经过我的整理重新排列出来的。

2017-04-17 08:55:58 3522

原创 《Objective-C 高级编程》干货三部曲(一):引用计数篇

总结了Effective Objective-C之后,还想读一本进阶的iOS书,毫不犹豫选中了《Objective-C 高级编程》:这本书有三个章节,我针对每一章节进行总结并加上适当的扩展分享给大家。

2017-04-10 08:52:24 4764 3

原创 基于MVVM,用于快速搭建设置页,个人信息页的框架

写一个小小轮子~写UITableView的时候,我们经常遇到的是完全依赖于网络请求,需要自定义的动态cell的需求(比如微博帖子列表)。但是同时,大多数app里面几乎也都有设置页,个人页等其他以静态表格为主的页面。而且这些页面的共性比较多: 1. 大多数情况下在进入页面之前就已经拿到所有数据。 2. cell样式单一,自定义cell出现的几率比较小(几乎都是高度为44的cell)。 3. 多数都分组。

2017-03-23 08:33:42 2754 1

原创 [iOS开发项目-11] 英雄列表

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:英雄列表2. 项目截图展示3. 项目功能单纯显示英雄数据4. 项目代码VC.m#import "ViewController.h"#import "SJHero.h"@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>@property

2015-11-07 22:58:42 889 6

原创 [iOS开发项目-10] 图片轮播器

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:图片轮播器2. 项目截图展示3. 项目功能打开程序实现图片自动滚动。能够左右拖动图片,能静止图片滚动。3. 项目代码#import "ViewController.h"#define kImageCount 5@interface ViewController () <UIScrollViewDelegate>@proper

2015-10-11 16:25:55 970

原创 [iOS开发项目-9] 倒计时时钟

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:倒计时时钟2. 项目截图展示3. 项目功能点击播放按钮,倒计时开始。点击暂停按钮,倒计时暂停。再点击播放按钮,倒计时继续。倒计时时钟运行时,可以滚动textView的滚动条。3. 项目代码#import "ViewController.h"@interface ViewController ()@property (non

2015-10-08 14:47:36 1030

原创 [iOS开发项目-8] 喜马拉雅电台

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:喜马拉雅电台2. 项目截图展示3. 项目功能单纯的显示和滚动功能3. 项目代码#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;@property

2015-10-07 00:49:46 1264

原创 [iOS开发项目-8] 查看大图

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:查看大图2. 项目截图展示3. 项目功能左右滑动查看图片支持缩放功能点击中间按钮移动图片3. 项目代码#import "ViewController.h"@interface ViewController ()<UIScrollViewDelegate>@property (strong, nonatomic) IBOut

2015-10-07 00:12:08 688

原创 [iOS开发项目-7] 超级猜图

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:超级猜图2. 项目截图展示3. 项目功能点击图片或“大图”按钮,图片放大;再点击图片或点击周围区域,图片复原。点击备选按钮,相应字填入答案区按钮。按“下一题”按钮或答案正确:进入下一题。点击答案区某按钮,相应字回到备选区原来位置。点击“帮助按钮”会清空答案区按钮,并提示正确答案的第一个字。答案正确或错误都有相应的扣分和

2015-10-06 23:21:59 1069

原创 [iOS开发项目-6] 应用程序管理

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:应用管理2. 项目截图展示3. 项目功能展示应用图标,名称和下载按钮点击下载按钮,出现“正在下载”图标3. 项目代码模型代码:AppInfo.h#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>@interface AppInfo : NSObject@pr

2015-10-02 18:26:45 586

原创 [iOS开发项目-5] 图片浏览器

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:图片浏览器2. 项目截图展示3. 项目功能点击左右按钮浏览图片,更新序号,图片,描述内容。图片一共五张:显示第一张图片的时候,左边的按钮失效;显示最后一张按钮的时候,右边的按钮失效。4. 项目代码#import "ViewController.h"@interface ViewController ()@property

2015-09-29 11:14:15 794

原创 [iOS开发项目-4] 汤姆猫(只包含动作,没有发声功能)

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:汤姆猫2. 项目截图展示3. 项目功能点击特定按钮,播放动画3. 项目代码#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIImageView *tom;@end@implementatio

2015-09-28 00:25:35 1217

原创 [iOS开发项目-3] 按钮控件的移动,放大缩小,左右旋转操作

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:按钮操作2. 项目截图展示3. 项目功能点击按钮,切换按钮状态上下左右移动按钮放大,缩小按钮左右旋转按钮4. 项目代码#import "ViewController.h"//设置按钮移动速度#define KMovingDelta 20//设置按钮标签枚举值typedef enum{ kMovingDirTo

2015-09-27 23:39:11 1002

原创 [iOS开发项目-2] 用户登录界面

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:用户登录项目功能:能够输入用户名和密码点击按钮后输出用户名和密码细节功能: 刚进入界面即打开键盘输入用户名后点击return键,光标自动跳到密码输入框中输入密码后点击return键,直接调用登录方法并关闭键盘2. 项目截图展示3. 代码#import "ViewController.h"@interface Vie

2015-09-27 00:59:20 969

原创 [iOS开发项目-1] 加法计算器

时隔一个月没写博客了,这段时间由于杂事繁多,没有及时整理好学习内容。现在就将笔者在这段时间里学习的iOS项目和iOS面试有关的题目整理出来呈现给大家。本项目是取自传智播客的教学项目,加入笔者的修改和润饰。1. 项目名称:加法计算器2. 项目截图展示3. 代码#import "ViewController.h"@interface ViewController ()@property (nonato

2015-09-26 23:26:32 560

原创 [读书笔记—程序员]《高效程序员的45个习惯:敏捷开发修炼之道》- 苏帕拉马尼亚姆,亨特

虽然不记得阅读本书用了多久,但是整理本书的读书笔记用了两个小时的时间,因为本书的大部分内容对于笔者来说都是新知识,很难进行归纳总结本书所讲的是程序员应具有的工作态度和在团队中作为开发者和领导者具备的各种”敏捷的”习惯。虽然本书对于程序员的硬实力(本书讲解的编程语言是面向对象类语言,但是讲解的代码非常少)帮助不大,但是对于程序员应该具备的软实力的培养和提高有极大的帮助,是每位程序员都应该反复阅读的书籍

2015-08-19 01:30:39 2780

原创 [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十三章 协议

13.1 协议正式协议:包含了方法和属性的有名称列表。注意:采用协议后,类就要实现该协议的所有方法。通常情况下,一个协议只有少数几个需要实现的方法.在协议中,不会引用新的实例变量。13.11 声明协议NSCopying 协议@protocol NSCopying- (id) copyWithZone: (NSZone *) zone;@end//如果采用了NSCopying协议,你

2015-08-11 20:29:36 977

原创 [读书笔记—效率]《超级整理术》- [日]泉正人

作者简介:泉正人,麻省理工学院斯隆商学院行政管理硕士学位,设立了最大的独立金融教育机关 -日本金融学习株式会社。笔者的话:不同于以往的整理方面的书籍,本书作者介绍了多方面的整理术:公司内办公文件的整理,电脑与电子邮件的整理,对大脑内容的整理和对时间的整理。虽然笔者给自己的定位不是像本书作者那样的商务人士,但是其高效的整理理念还是值得借鉴的。第一章: 为什么我们需要整理 整理的目的不仅仅为了干净,

2015-08-09 22:57:45 3004

原创 [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十二章 类别

12.1 创建类别类别(category)是一种为现有的类添加新方法的方式例:获取字符串的长度并存入NSDictionary字典中不使用类别的方式: NSNumber *number; number = [NSNumber numberWithUnsignedInt: [string length]]; // ... do something with numb

2015-08-02 02:49:36 994

原创 [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十一章 属性

11.1 使用属性值@property float rainHandling;//表明此类具有float类型的属性,其名称为rainHandling注意:属性的名称不必与实例变量名称相同。@synthesize rainHandling;//表示创建了该属性的访问代码注意:使用属性后,可以不声明实例变量,编译器会声明。有两个地方可以添加实例变量声明:头文件:让子类直接通过属性访问变量实现文

2015-07-31 01:20:44 922

原创 [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十章 对象初始化

10.1 分配对象向某个类发送alloc消息,能为类分配一块足够大的内存用来存放该类的全部实例变量,同时alloc还将这块内存区域全部初始化为0.刚分配的对象并不能立即使用,需要先初始化。初始化:从操作系统取得一块内存存储对象。 init方法返回其正在初始化的对象10.11 初始化对象注意:初始化方法返回的对象跟分配的对象可能不同。例:字符串初始化函数可能会决定创建一个不同类的对象。10.12 编

2015-07-30 03:25:33 1214

原创 [读书笔记—学习方法]《深度学习的艺术》-采铜

在知乎上敬仰采铜老师很久,当得知他写的一本关于学习方法的书《深度学习的艺术》上架之后,在亚马逊中国网站上购买了这本我人生中第一本付费购买的电子书。该读书笔记并非完全按照原书叙述顺序摘抄,而是经过本人的修改和整理而来。读书笔记正文:所谓深度学习,顾名思义,就是学东西不只看到它浮在表面的东西,而是往深入去挖掘,甚至看到别人看不见的东西。我之所以要强调学习深度,是因为了解到现在年轻人读书不求甚解,蜻蜓点水

2015-07-28 07:13:59 2705

原创 [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第九章 内存管理

内存管理:确保在需要的时候分配内存,在程序运行结束时释放占用的内存如果只分配内存而不释放内存,则会发生内存泄漏(leak memory),程序的内存占用量不断增加,最终会被耗尽并导致程序崩溃。不要使用任何刚释放的内存,否则可能误用陈旧的数据,如果内存已经加载了其他数据,将会破坏这些新数据。9.1 对象生命周期对象的生命周期:诞生:通过alloc或new方法实现 生存:接受消息并执行操作

2015-07-28 06:27:45 907

原创 [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第八章 Foudation Kit 介绍

本学习笔记是对《Objective—C 程序设计 第六版》第十五章关于Foundation框架内容的查缺补漏,因此内容看上去不是很完整。8.1~8.2 略8.3 一些有用的数据类型8.31 范围结构体NSRange:表示字符串里的字符范围或者数组里的元素范围。typedef struct _NSRange{ unsigned int location; unsigned int l

2015-07-27 14:08:06 613

原创 [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第二章~第七章

在看完《Objective-C 程序设计 第6版》之后,看了一些关于iOS开发职位的面试题,发现自身基础很是不牢,于是打算以查缺补漏的方式阅读另一本关于Objective-C的基础书籍:《Objective-C-基础教程 第2版》。 本套学习笔记主要只是记录《Objective-C 程序设计 第6版》中未提到的知识点,因此看上去内容不是很完整。第二章 对c的扩展2.1 import语句Objec

2015-07-22 18:52:47 1093

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十八章 复制对象

origin = pt; 将对象pt的地址复制到origin中。两个变量都指向内存中同一个地址Foundation对象:将一个变量赋值给另一个对象仅仅创建了另一个对这个对象的引用(地址)。Part 1.copy 和 mutablecopy 方法:创建对象的副本复制对象(的引用) dataArray2 = dataArray;//创建了内存中同一数组对象的另一个引用:总共一个数组创建对象的副

2015-07-10 22:21:07 802

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十七章 内存管理和自动计数

本书第十六章讲解的时关于文件和目录的操作,内容相对简单,再次略过。 第十七章的学习笔记经本人归纳整理呈献给大家。内存管理: - 为了被占用的内存能够再次利用,通过内存管理清理不用的内存。如果一个对象不再使用,就需要释放对象占用的内存Part 1. 基本内存管理模型Part 1.1 自动垃圾收集:系统能够自动贾策对象是否拥有其他的对象,当程序执行需要空间的时候,不再被引用的对象会被自动释放Pa

2015-07-09 21:53:41 708

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十五章 数字 字符串和集合

Part 1. 数字对象基本的数据类型不是对象,因此不能给他们发信息。但是有的时候需要将这些值作为对象使用:NSArry创建的数组存储的值必须是对象,因此数据类型无法直接存储到数组中,需要NSNumber类,依据数据的类型创建对象。NSNumber类:每种基本数据类型,类方法都能为它创建一个NSNumber对象。 NSNumber *myNumber, *floatNumber,

2015-07-08 23:11:35 1200

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十二章 预处理程序

Part 1. #define语句#define语句的基本用途之一是给符号名称指定程序常量。类似于文本编辑器中的搜索和替换。优点记忆成本低:不必特意记住常量的值更改便携性:只需在一个地方更改常量的值加强程序的可扩展性:定义数组的大小定义的内容1.定义整数#define TRUE 1 // 定义TRUE,并使其等于1。gameover = TRUE // 将1赋给gameover。2.定

2015-07-07 15:24:22 857

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十一章 分类和协议

Part 1. 分类分类提供了一种简单的方式,用它可以将类的定义模块化到相关方法的组成分类中。还提供了扩展现有类定义的简便方式。原始Fraction类的接口部分#import <Foundation/Foundationh>@interface Fraction : NSObject@property int numerator, denominator;-(void) setTo: (int) n

2015-07-06 22:33:58 619

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十章 变量和数据类型

Part 1. 实例变量和属性目前的趋势是使用(_)作为实例变量名字的起始字符。在实现部分显式声明实例变量是私有的 因此不能在子类中通过名字直接获取到实例变量的值。在子类中只能通过继承的存取方法获取实例变量的值。不必用@synthesize指令生成存取方法,只要在属性中声明即可。Part 2. 全局变量小写的g作为全局变量的首字母:int gMoveNumber = 1;,也是外部变量

2015-07-06 00:28:57 1340

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第九章 多态,动态类型和动态绑定

Part 1. 多态:相同的名称,不同的类多态:使不同的类共享相同方法名称的能力称为多态。(可以开发一组可以相应相同方法名的类) //两个分数 Fraction *f1 = [[Fraction alloc] init]; Fraction *f2 = [[Fraction alloc] init]; Fraction

2015-07-06 00:21:24 700

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第八章 继承

在子类使用实例变量,必须先在接口部分声明,在实现部分声明的实例变量是私有的ClassB继承ClassA,ClassC继承ClassB. ClassC能继承ClassB的所有方法和实例变量,同时也一次继承A的所有方法和实例变量。Part1. 继承 扩展1. 矩形类:声明文件#import <Foundation/Foundation.h>@interface Rectangle : NSObj

2015-07-03 15:33:07 915

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第七章 类 课后题 7-6 解析

题目: 根据第四章的课后题4-6,添加一个新的方法add:,用来求两个复数之和。代码为本人原创。代码:声明文件:#import <Foundation/Foundation.h>@interface Complex : NSObject@property double real, imaginary;-(void) setReal: (double) a andsetImaginary: (d

2015-07-02 13:55:59 824

原创 [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第七章 类

本章的学习笔记以本书第六章的例题(两个分数的加法)为主线展开,逐步介绍重要的知识点。Part 1. 合成存取方法从Objective-C 2.0 开始,可自动生成设置方法和取值方法:通过属性。接口文件:@interface Fraction : NSObject@property int numerator, denominator; //分子,分母实现文件:@implementation Frac

2015-07-02 00:19:00 638

原创 [学习笔记—算法] 正序 & 倒序 提取整数各位上的数字

题目: 让用户输入一个整数,正序&倒序提取整数各位上的数字。代码 [Objective-C]: int i,j,number_0,number,counter_0,counter,ten; int right_digit, left_digit; counter = 0; //初始化位数 NSLog(@"Enter your number

2015-06-30 21:26:59 1443

原创 [学习笔记—算法] 计算整数各位上数字的和

题目:计算整数各位上数字的和代码 [Objective-C]: int number, right_digit, sum; NSLog(@"Enter your number:"); scanf("%i", &number); sum = 0; //初始化各位数字的和 do { right_digit

2015-06-30 21:07:05 882

MALTAB 和通信系统

基于MATLAB的通信系统的仿真与实现,在通信系统的各个环节都有讲述,比较全面

2013-03-31

大话处理器通俗易懂

处理器入门级别的书籍,讲解了处理器的历史,简单介绍了几种处理器

2013-02-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除