自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Welcome~

有问题或错误,大家一起多多交流,共同进步~

  • 博客(51)
  • 问答 (1)
  • 收藏
  • 关注

原创 Objective-C中堆和栈的区别是什么?

堆空间的内存是动态分配的,一般用于存放Objective-C对象,并且需要手动释放内存,ARC环境下Objective-C对象由编译器管理,不需要手动释放;栈空间的内存由系统自动分配,一般存放非Objective-C对象的基本数据类型,例如int、float等,有编译器管理,不需要手动管理内存。int main(int argc,char * argv[] { @autoreleasep...

2019-10-29 11:38:38 366

原创 #import与#include、@class有什么区别?

#import与#include、@class有什么区别?#import与#include都是用来引入头文件的,与#include相比,Objective-C中#import的优势是不会重复引入头文件,相当于多了C/C++中#pragma once的作用,它可以保证头文件只被编译一次。@class相当于 只是在头文件声明一下要用到的类的头文件(前向声明),告诉编译器有这样一个类的定义但暂时...

2019-10-29 11:31:33 377

原创 什么是“懒加载”(Lazy Loading)?

“懒加载”也被叫作“延迟价值”,它的核心思想是把对象的实例化延迟到真正调用该对象的时候,这样做的好处是可以减轻大量对象在实例化时对资源的小号,而不是在程序初始化的时候就预先将对象实例化。另外“懒加载”可以将对象的实例化代码从初始化方法中独立出来,从而提高代码的可读性,以便于代码能够更好地组织。最典型的一个应用“懒加载”的例子是在对象的getter方法中实例化对象,例如getter方法被重写,使...

2019-10-29 11:13:25 13419

原创 Objective-C和Swift的区别是什么?

Objective-C的语法比较复杂,学习成本非常高,其复杂主要体现在它的类的创建、函数的实现和其他的高级特性上。Swift是2013年苹果发布的一种新的iOS开发语言,其目的在于替代复杂的Objective-C。Swift的设计借鉴了目前比较流行的几种开发语言。例如Python、Ruby等,使得Swift用起来非常简单、快捷,它比Objective-C的学习成本更低,对开发者来说也更容易上手...

2019-10-29 11:01:42 1689

翻译 Xcode项目中target和scheme的区别是什么?

简单地说,target包含了所有的源文件,它来决定编译哪些文件。一个project可以包含一个或多个target。scheme定义了一个target集合,它来决定运行和构建哪个target。...

2019-10-29 10:48:16 1249

翻译 Xcode项目中workspace与project的区别是什么?

workspace是一个文档的集合,它可以包括许多个project,并管理着project之间的关系,它为不同project之间的调用提供了解决方法。需要指出的是,workspace在Xcode中以xcworkspace文件形式存在,就是我们使用CocoaPods后的产物。可以吧project看成一个仓库,用来存放一个项目中所有用到的资源,它能包含多个target,并定义那个target作为最...

2019-10-29 10:45:25 6925

原创 什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?

这个问题主要讲Xcode编译器的认知,在学习iOS之前有必要学习一下Objective-C的编译环境。在了解LLVM和Clang之前,先得了解一下什么是编译器。编译器是一种计算机程序,它将某种编程语言(高级编程语言)写成的源代码转换成另一种编程语言(低级编程语言)。一个现代编译器的主要工作流程为:源代码->预处理器->编译器->目标代码->链接器->可执行程序...

2019-10-29 10:36:39 8800

转载 浅谈JS中String()与 .toString()的区别

我们知道String()与.toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的1、.toString()可以将所有的的数据都转换为字符串,但是要排除null 和 undefined例如将false转为字符串类型 var str = false.toString(); console.log(str, typ

2017-04-21 10:37:39 1396

转载 iOS中使用RSA加密

在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于解密. 首先需要先生成这些文件,然后再将文件导入工程使用,不多说,开始做!一、使用openssl生成所需秘钥文件  生成环境是在mac系统下,使用openssl进行生成,首先打开终

2017-04-18 09:32:51 1339 1

转载 ios苹果自带的MD5加密

苹果包装了MD5加密的方法,使用起来十分的方便。 1、导入头文件:#import2、MD5加密方法:- (NSString *) md5:(NSString *) input { const char *cStr = [input UTF8String]; unsigned char digest[CC_MD5_DIGEST_LENGTH]; C

2017-04-17 15:58:04 1001

原创 iOS NSPredicate特殊字符判断无法正常使用

1.iOS 10.1 之前一直用这段代码来做特殊字符判断,正常使用。最近用的时候发现无法进行判断了,一直是 return NO。+ (BOOL)isNoTeShuZiFu:(NSString *)string {        NSString *regex =@"[^a-zA-Z0-9\u4E00-\u9FA5,.?:;()!{},。、?:;()!{}+=]➋➌➍➎➏

2017-02-13 16:12:24 1536

原创 HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误(转载)

HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误原文  http://www.jaafee.cn/archives/419.html主题 Http请求方法是请求一定的Web页面的程序或用于特定的URL。可选用下列几种:GET: 请求指定的页面信息,并返回实体主体。HEAD: 只请求页面的首部。POST: 请求

2015-09-12 14:15:03 706

原创 C语言动态内存管理

1-概述动态存储管理的基本问题是:系统如何按请求分配内存,如何回收内存再利用。提出请求的用户可能是系统的一个作业,也可能是程序中的一个变量。空闲块未曾分配的地址连续的内存区称为“空闲块”。占用块已分配给用户使用的地址连续的内存区称为“占用块”。系统刚刚启动时,整个内存可看做一个大的“空闲块”,随着用户请求的进入,系统依次分配相应的内存。在系统

2015-06-10 01:15:21 1072

原创 浅谈C语言中的联合体

联合体union      当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的:     1)联合体是一个结构;     2)它的所有成员相对于基地址的偏移量都为0;     3)此结构空间要大到足够容纳最"宽"的成员;     4)其对齐方式要适合其中所有的成员;下面

2015-06-10 00:58:59 723

原创 iOS8 自定义navigationbar 以及 UIBarButtonItem 边距问题

一。自定义navigationbar - (void)initNavigationBar{ [self.navigationController setNavigationBarHidden:YES]; UINavigationBar *bar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,

2015-06-09 22:38:14 1119

原创 使用storyboard设置按钮边框属性(颜色,宽度,圆角)

通常使用Category时,只能添加方法,不可添加属性。但是在使用Storyboard时我们可能会使用到keyPath,这里设置的key都需要是所设置视图的属性值,并且类型有所限制。例如:我现在有一个按钮,我想设置成圆角,并且是紫色边框。并且我不想写代码,想通过storyboard直接设置。这样看起来很帅(其实就是一个强迫症吧,因为一直在用sb设置整个界面,但是突然出现几个样式,在sb中不

2015-06-09 13:59:37 12074

原创 UIButton 设置圆角 边框颜色 点击回调方法

UIButton *signBtn = [UIButton buttonWithType:UIButtonTypeCustom];signBtn.frame = CGRectMake(0, 0, 80, 40);[signBtn.layer setMasksToBounds:YES];[signBtn.layer setCornerRadius:10.0]; //设置矩形四

2015-06-09 00:53:19 1098

转载 二十岁出头的时候上,你一无所有,你拥有一切

一篇治愈系的励志文,让我想到一句话,青春就是明明一无所有,却仍然相信有一天世界会在你脚下。(一)嘴上说说的人生那年我在离家的时候一个劲地往自己的硬盘里塞《灌篮高手》,我妈一副嗤之以鼻的表情看着我,似乎是在说:“这么大的人了居然还这么喜欢看动漫。”我不知道怎么回应她,只好耸耸肩,因为我实在无法对我亲爱的娘亲说明这部动漫对我的意义。你知道,有

2015-06-04 13:45:53 547

原创 objective-c语法小结

2015-06-04 13:08:34 991

原创 C语言小结

MindNode 做的一个便于复习,梳理知识用得结构图。

2015-06-04 13:03:27 930

原创 JSON数据格式(附翻译)

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。

2015-06-04 01:10:16 3401

转载 UINavigationController使用详解

UINavigationController使用详解    废话少说回到正题,UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的APP中(如qq,系统相册等)都有用到。说是使用详解,其实我只会介绍几个自认为比较重要或者容易放错的地方进行讲

2015-04-24 08:27:01 487

原创 UILabel

UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 20.0, 200.0, 50.0)];//声明时必须指定长宽label1.text = @"标签显示的文字";label1.font = [UIFont boldSystemFontOfSize:20];//设置粗体  正常的是 SystemF

2015-04-16 08:45:39 658

转载 iOS源码:实例开发推荐

iOS源码:游戏引擎-推箱子游戏http://www.apkbus.com/android-106392-1-11.htmliOS源码:进度条-Colorful ProgressViewhttp://www.apkbus.com/android-106653-1-11.htmliOS源码:列表-UITableView背景随动UITab

2015-04-13 09:00:02 875

原创 UIView的Animaltion

所谓动画效果,就是会动的画,到iOS App中来说的话,就是各种UIView的移动。 想想看,如果我们自己来实现所有UIView的动画效果,需要考虑些什么东西呢? * 该UIView现在在哪儿? * 该UIView最后会动到哪儿? * 该UIView以什么样的方式移动到那儿? * 该动画持续多长时间? * 每次移动的最小时间间隔? 

2015-04-09 14:29:55 919

原创 NSRange and NSString对象

NSRange and NSString对象版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://iphonedevelopment.blogbus.com/logs/58282161.html本文转载自www.madhome.org开发论坛当谈到NSString方法时,你会发现许多都涉及到NSRange。不必担心,它其实只不过是一种C语言结

2015-04-07 22:22:51 586

转载 [NSBundle mainBundle] 详解

转:NSBundle介绍 http://blog.sina.com.cn/s/blog_8c87ba3b0100t89v.html bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundl

2015-04-07 20:10:49 2315

转载 IOS开发之----NSArray和NSMutableArray

Objective-C的数组比C++,Java的数组强大在于,NSArray保存的对象可以是不同的对象。但只能保存对象,int ,char,double等基本数据类型不能直接保存,需要通过转换成对象才能加入数组。1、NSArray 不可变数组[array count] : 数组的长度。[array objectAtIndex 0]: 传入数组脚标的id 得到数据

2015-04-07 09:46:22 556

原创 OC基础数据类型之NSNumber

假如你能够很轻松的理解NSString的定义和用法,那么NSNumber的话联想一下你就大概能够明白其中的道理和关系了。首先你必须知道C语言的基础数据类型在OC中不是所有地方都支持使用,那么碰到例如copy等不支持使用的情况,我们就必须用OC的基本数据类型了。那么OC的基本数据类型是什么?其实它就是将C语言的数据类型全部打包封装到了一个类里面。这个类里面各种各样的C语言基础数据类型都有,例如int,float,double等当然OC里NSNumber的功能相对要强大很多,它不仅仅包含了C的基本数

2015-04-02 17:20:58 1064

转载 Object-C第二课,会让你找回高中记单词感觉的类属性

看到好的文章就忍不住转发了,好东西要和大家一起分享才够意思嘛。好多地方写的过于细化发杂,其实object-c它可并不像那么复杂啊。有一张图让你学完oc的,下回有空发出来分享给大家。(你别不信,真的比那些几百页的书强)//1. 自动有一个_weight//2. setter/getter//3. nonatomic/atomic, 默认atomic

2015-03-31 20:58:48 751

原创 Object-C第一课,我们要注意到的小细节

在Xcode里编译.m文件时可以自己决定是否手动引用,Xcode自动选择的是自动引用:命令行编译时也可以用得着,例:clang XXX.m -framework Foundation -fobjc-arc-fobjc-arc 自动引用的编译-fno-objc-arc 手动引用的编译强调“-”与字母之间不可有空格,它们是一个整体,不要随意分开它们。使用NSLo

2015-03-30 21:50:49 612

翻译 ANSI-C中使用引用计数(译)

内存管理在编写c程序时是一件困难的事情,某些高等级的编程语言提供了不同的内存管理的方法。主要有垃圾回收(garbage collection) 和 引用计数(reference counting)。本文将教给你如何在c语言中实现引用计数的内存管理系统。从个人角度讲,本人(原文章作者)作为一名使用c语言和Objective-c语言的程序员,更加偏爱引用计数的方法。因为这种方法隐含着对象所有权的概念。(It implies the notion of ownership on objects

2015-03-26 10:23:03 1022

转载 深入理解typedef

typedef作为类型定义关键字,用于在原有数据类型(包括基本类型、构造类型和指针等)的基础上,由用户自定义新的类型名称。    在编程中使用typedef的好处,除了为变量取一个简单易记且意义明确的新名称之外,还可以简化一些比较复杂的类型声明。比如:         typedef int INT32;将INT32定义为与int具有相同意义的名字,这样类型INT32就可用

2015-03-25 15:46:45 413

转载 C语言标准库函数 qsort 详解

文章来源:Slyar Home (www.slyar.com)qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。函数原型:void qsort ( void * base, size_t num, size_t size, int ( * comparator

2015-03-25 11:47:18 586

转载 C中堆管理―浅谈malloc,calloc,realloc

malloc:原型:extern void *malloc(unsigned int num_bytes);  头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h。  功能:分配长度为num_bytes字节的内存块  返回值

2015-03-24 16:22:30 658

转载 Sizeof与Strlen的区别与联系(转)

1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函数做参数,比如: short f();printf("%d\

2015-03-24 10:41:06 427

转载 漫谈C语言及如何学习C语言

http://www.cnblogs.com/lua5/archive/2010/12/04/1895968.html为什么要学习C语言?为什么要学习、使用C语言?为什么要学习一个可能比自己都岁数大的编程语言?我在前面如何学习编程语言的博客文章http://sunxiunan.com/?p=1597 里提到,选择一门编程语言,“为什么而学”这

2015-03-24 01:06:01 779

翻译 Quick Sort快速排序,顶。

Quick Sort-快速排序此贴由戴维营教育学员翻译,大茶园丁整理,特意为戴维营教育零基础学员课外学习之用.快速排序像归并排序一样是一个分而治之的算法,但它不想归并排序那样,它不需要额外的空间,在待排序的集合内就地排序。这个分割步骤就是选择一个基准点把数组分割,小于或等于基准点的元素全排到左边去,大于或等于基准点的元素全部排到基准点右边去。再依次对左右两边的元素递归地进行快速

2015-03-23 11:00:09 637

转载 结构体中得函数指针,让我们更加方便~

转自:http://blog.csdn.net/unix21/article/details/9293877结构体指针变量的定义,定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct结构体标识符{成员变量列表;…};struct 结构体标识符 *指针变量名;变量初始化一:struct结构体标识符 变量名={初始化值1,初

2015-03-23 10:56:45 735

原创 C语言初步总结

初步C语言的小总结。内容比较多。大家可以复制做一个文档,然后用得时候直接搜索就好了,非常方便,不用网络也可以使用。

2015-03-23 08:41:29 1059 1

空空如也

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

TA关注的人

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