自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

落泪无痕的博客

Stay hungry! Stay foolish!

  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 一键发布博客教程

一键发布博客教程[TOC]1. 发布平台发布平台推荐:OpenWrite工作台正常注册登录之后,按照网站提示完成以下三步:就可以正常发布文章到各大平台了,目前支持以下8大平台,通过markdown语法编辑文章2. 图床配置发布平台配置好了之后,我们还需要配置图床,之所以需要配置图床是因为文章中或多或少会涉及到图片,图床服务就是将我们的本地图片上传到对应服务器,图片上传成功之后,Markdown文档的本地图片会替换成图片链接。我们将文章发布到各大平台之后就可以正常的访问图片了。2.1 申请

2022-04-22 18:32:25 2076

原创 第6课-类的原理分析下

第6课-类的原理分析下[TOC]6.1 成员变量、属性的区别以及编码6.1.1 成员变量、属性和实例变量属性(property):在OC中是通过@property开头定义,且是带下划线成员变量 + setter + getter方法的变量成员变量(ivar):在OC的类中{}中定义的变量实例变量:是一种特殊的成员变量,它的类型为对象,例如 NSObject、UILabel、UIButton等我们通过一个例子,看一下底层源码:// 成员变量 vs 属性 VS 实例变量@interface

2022-04-11 10:21:20 176

原创 第5课-类的原理分析上-2

第5课-类的原理分析上-2[TOC]5.2.7 类方法在底层的存储上一步中我们知道了对象方法存储在类的bits字段中,但是我们没有找到类方法,我们初步分析一下,如果类方法不在类中,那是不是可能在元类中呢,我们通过lldb验证一下:验证通过。我们思考一个问题,为什么类方法存储到元类里面呢?首先我们通过上一步已经知道,对象方法已经存储到类里面,为了和对象方法区分,类方法是不是需要存储到另一个地方啊,那么也就存储元类最合适了。这也反向说明了元类存在的必要性。结论:类方法是以实例方法的形式存储在元类

2022-04-11 10:18:54 194

原创 第5课-类的原理分析上-1

第5课-类的原理分析上-1[TOC]5.1 类的分析5.1.1 元类首先我们看一下下面实例,引出元类ZBPerson继承NSObject@interface ZBPerson : NSObject{ NSString *hobby;}@property (nonatomic, copy) NSString *name;@property (nonatomic, copy) NSString *nickName;- (void)sayHello;+ (void)say666;

2022-04-10 20:19:41 1236

原创 第4课-类原理分析基础

第4课-类原理分析基础[TOC]1. 内存偏移结论:获取对象内存中的变量,底层实现方式是对象的首地址+偏移值1.1 普通指针类型看下面代码:int main(int argc, const char * argv[]) { @autoreleasepool { int a = 10; int b = 10; int *p1 = &a; int *p2 = &b; NSLog(@"--

2022-04-10 20:19:06 269

原创 第3课-OC对象原理下

第3课-OC对象原理下[TOC]1.对象的本质在之前的课程中我们讲过了编译器,在探索对象的本质之前,我们需要将源文件通过编译器编译成指定文件1.1 clang编译器的常见用法1、将目标文件编译成指定文件例如下面我们将main.m文件编译成c++文件,首先我们在终端进入main.m所在的目录,然后执行clang -rewrite-objc main.m -o main.cpp命令此时我们会报如下错误:解决办法:clang -x objective-c -rewrite-objc -isys

2022-04-10 20:18:29 648

原创 第2课-OC对象原理上-2

第2课-OC对象原理上-21.4.2.4 向系统开辟内存,返回地址指针1.4.2.4.1 查看malloc源码系统底层是怎么分配内存的呢,我们先看以下例子:有一个ZBPerson对象如下@interface ZBPerson : NSObject@property (nonatomic, copy) NSString *name; ///< 名字@property (nonatomic, copy) NSString *nickName; // 昵称@property (nonatom

2022-04-10 20:05:00 1742

原创 第2课-OC对象原理上-1

第2课-OC对象原理上-1[TOC]1.1 alloc对象的指针地址和内存首先我们看下面代码的执行ZBPerson *p1 = [ZBPerson alloc];ZBPerson *p2 = [p1 init];ZBPerson *p3 = [p1 init];NSLog(@"%@-%p-%p", p1, p1, &p1);NSLog(@"%@-%p-%p", p2, p2, &p2);NSLog(@"%@-%p-%p&q

2022-04-10 20:01:11 1464

原创 第1课-OC对象原理基础

第1课-OC对象原理基础[TOC]在探索OC对象原理之前,我们首先需要了解以下知识点1. lldblldb是xcode自带的命令行调试工具。我们可以通过:help:查看lldb常见命令help expression: 也可以指定查看某个具体命令,这里是查看expression的具体用法1.1 计算表达式命令(expression、po、p)1.1.1 expressionexpression可简写为expr或者eexpression命令的作用是执行一个表达式,并将表达式返回的结果

2022-04-10 19:27:47 1045

原创 iOS开发基础-C语言数据类型和运算符

第2章 数据类型和运算符2.1 注释程序注释是源代码的一个重要部分,对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上;单行注释 //;多行注释 /*注释开始和*/注释结束,需要指出的是多行注释不可以嵌套,在/**/多行注释代码块内,不能再次使用/**/添加多行注释;2.2 标识符和变量2.2.1 分隔符 Objective-C语言里的分号(;)、花括号({})、方括号([])、圆括号(())、空格、圆点(.)都具有特殊的分隔作用,因此被统称为分隔符。分号 Objectiv

2022-04-10 16:43:34 2307

原创 XCode免升级支持iOS设备调试

Could not locate device support files.This iPhone 6 is running iOS 10.3.1 (14E304), which may not be supported by this version of Xcode.解决方案:打开/Applications/Xcode.app/Contents/Developer/Platforms/

2017-05-03 16:07:21 652

原创

宏优缺点系统预编译宏1.NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END2.UIKIT_EXTERN和FOUNDATION_EXTERN3.NS_AVAILABLE_IOS、NS_DEPRECATED_IOS、NS_CLASS_AVAILABLE、NS_ENUM_AVAILABLE、NS_AVAILABLE、NS_DEPRECATE

2017-05-03 10:38:00 471

原创 MWeb-Markdown语法

目录目录标题一级标题二级标题三级标题四级标题五级标题六级标题强调换行无序列表有序列表任务列表图片链接区块引用行内代码多行或者一段代码顺序图或者流程图表格分割线MathJax语法脚注行内Html标题一级标题二级标题

2017-04-28 19:36:33 2656

原创 xcode设计

// EZOnlineScorerRecorder.m// EZOnlineScorerRecorder//// Created by Johnny on 27/03/2017.// Copyright © 2017 LLS. All rights reserved.//import "EZOnlineScorerRecorder.h"import "EZAudioSo

2017-04-18 19:51:14 531

原创 UITextField设置placeholder颜色

[self.passwordTextFieldsetValue:[UIColorcolorWithHexColor:@"#ffffff"]forKeyPath:@"_placeholderLabel.textColor"];    [self.accountTextFieldsetValue:[UIColorcolorWithHexColor:@"#ffffff"]

2016-08-22 17:58:32 775

原创 Xcode常用插件

工欲善其事,必先利其器。要想提高开发效率,使用一些常用的插件是必不可少的。下面就给大家介绍一下我在Xcode中常用的一些插件。1.Alcatraz 一个管理插件的插件下载地址:https://github.com/alcatraz/Alcatraz.git(1)安装在线安装,打开你的终端输入以下命令。curl -fsSL https://raw.github

2016-08-12 16:47:01 1501

原创 Icon和LunchImage

苹果官方文档:https://developer.apple.com/library/ios/qa/qa1686/_index.htmlTechnical Q&A QA1686App Icons on iPad and iPhoneQ:  How are the icon files in my application bundle used on iPad a

2016-08-09 18:00:32 848

转载 app真机调试

链接地址:http://blog.csdn.net/zoeice/article/details/38943759

2016-08-09 17:41:01 681

转载 在xcode6.1和ios10.10.1环境下实现app发布

链接地址:http://jingyan.baidu.com/album/f25ef25477db8b482d1b8252.html?picindex=1

2016-08-09 17:09:22 294

原创 iOS-手动添加限制-constraintsWithVisualForm

[NSLayoutConstraint constraintsWithVisualFormat:options:metrics:views: ];constraintsWithVisualFormat:参数为NSString型,指定Contsraint的属性,是垂直方向的限定还是水平方向的限定,参数定义一般如下:V:|-(>=XXX) :表示垂直方向

2016-08-09 16:54:55 5561

转载 静态包,静态库打包

前言打包静态报的时候需要设置other linker flags ==> 1.-Objc  2.-all_load(打包的项目和使用静态包的项目都要添加)(Xcode里-ObjC, -all_load, -force_load最近在做一个项目的时候,需要使用到一个第三方库,这个库的使用向导里面特别说明,在添加完该库后,需要在Xcode的Build Set

2016-08-09 16:43:18 2139

原创 调试程序-断点,Debug,崩溃日志分析,友盟崩溃日志

一.设置和查看断点断点可以分为以下3种类型。1. 文件行断点设置添加断点->右键选择Edit BreakpointCondition:指的是条件表达式,该项允许我们对断点生效设置条件,表示当满足某一特定条件的前提下,该断点才生效。(该条件的录入,不能够识别预处理的宏定义,也不能识别断点作用域之外的变量和方法)。eg:i == 1 ; (i == 1 ||

2016-08-09 15:06:02 2411

转载 使用Xcode和Instruments调试解决iOS内存泄露

虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用。本文假设你已经比较熟悉Obj-C的内存管理机制。实验的开发环境:XCode 4.5.21、运行Demo。先下载一个实现准备好的内存泄露的

2016-08-09 14:10:08 293

原创 基于测试驱动的iOS开发

测试按照阶段划分为:单元测试、集成测试、系统测试和回归测试。单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性,其测试对象是软件设计的最小单位——模块。单元测试是一种白盒测试。白盒测试是一种细粒度的测试,具体到方法、函数和异常测试,因此是由能够看懂编程语言、了解程序结构的程序员发起的。为了验证程序的正确性,程序员需要编写测试程序,按照测试用例测试程序是否能够有预期的结果。

2016-08-09 11:35:45 1281

原创 数据持久化 plist,CoreData,Sqlite

数据持久化 plist,CoreData,Sqlite

2016-08-08 17:06:42 333

原创 App内购买

App内购买

2016-08-08 16:51:42 1927

原创 iOS-代码规范

iOS-代码规范

2016-08-08 16:50:56 1081

原创 iOS-常用开发代码

iOS-常用开发代码

2016-08-08 16:50:23 870

转载 Size Class

Size Class

2016-08-08 16:49:26 394

转载 自动布局-Constraint

自动布局-Constraint

2016-08-08 16:48:27 643

原创 KVC/KVO

KVC/KVO

2016-08-08 16:47:50 315

原创 枚举enum、NS_ENUM 、NS_OPTIONS

枚举enum、NS_ENUM 、NS_OPTIONS

2016-08-08 16:47:15 1182

原创 多线程 NSThread,NSOperation,GCD

多线程 NSThread,NSOperation,GCD

2016-08-08 16:46:42 704

原创 OC中的属性和成员变量在.h文件和.m文件的不同

OC中的属性和成员变量在.h文件和.m文件的不同

2016-08-08 16:45:52 1671 1

原创 Categories

Categories

2016-08-08 16:45:00 676

原创 关键字(nonatomic/atomic)、(copy/retain/assign/strong/weak )、(readonly / readwrite)、(@property/@synthesiz

关键字(nonatomic/atomic)、(copy/retain/assign/strong/weak )、(readonly / readwrite)、(@property/@synthesize/@dynamic)、(self/super)

2016-08-08 16:44:26 538

原创 Static、const、extern区别

Static、const、extern区别

2016-08-08 16:43:51 2300

原创 @class #import #include辨析

@class #import #include辨析

2016-08-08 16:42:52 387

原创 iOS-规范-头文件结构

iOS-规范-1头文件结构

2016-08-08 16:42:10 459

转载 OC面试题大全

OC面试题大全

2016-08-08 16:41:05 1589

苹果ios开发一年的工作笔记.doc

iOS常用开发代码笔记,例如导航条隐藏,系统回收键盘,退回输入键盘,动态获取文本高度等常用代码示例。是我开发一年总结而得。

2014-08-16

空空如也

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

TA关注的人

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