- 博客(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
451
原创 #import与#include、@class有什么区别?
#import与#include、@class有什么区别?#import与#include都是用来引入头文件的,与#include相比,Objective-C中#import的优势是不会重复引入头文件,相当于多了C/C++中#pragma once的作用,它可以保证头文件只被编译一次。@class相当于 只是在头文件声明一下要用到的类的头文件(前向声明),告诉编译器有这样一个类的定义但暂时...
2019-10-29 11:31:33
513
原创 什么是“懒加载”(Lazy Loading)?
“懒加载”也被叫作“延迟价值”,它的核心思想是把对象的实例化延迟到真正调用该对象的时候,这样做的好处是可以减轻大量对象在实例化时对资源的小号,而不是在程序初始化的时候就预先将对象实例化。另外“懒加载”可以将对象的实例化代码从初始化方法中独立出来,从而提高代码的可读性,以便于代码能够更好地组织。最典型的一个应用“懒加载”的例子是在对象的getter方法中实例化对象,例如getter方法被重写,使...
2019-10-29 11:13:25
14259
原创 Objective-C和Swift的区别是什么?
Objective-C的语法比较复杂,学习成本非常高,其复杂主要体现在它的类的创建、函数的实现和其他的高级特性上。Swift是2013年苹果发布的一种新的iOS开发语言,其目的在于替代复杂的Objective-C。Swift的设计借鉴了目前比较流行的几种开发语言。例如Python、Ruby等,使得Swift用起来非常简单、快捷,它比Objective-C的学习成本更低,对开发者来说也更容易上手...
2019-10-29 11:01:42
1842
翻译 Xcode项目中target和scheme的区别是什么?
简单地说,target包含了所有的源文件,它来决定编译哪些文件。一个project可以包含一个或多个target。scheme定义了一个target集合,它来决定运行和构建哪个target。...
2019-10-29 10:48:16
1422
翻译 Xcode项目中workspace与project的区别是什么?
workspace是一个文档的集合,它可以包括许多个project,并管理着project之间的关系,它为不同project之间的调用提供了解决方法。需要指出的是,workspace在Xcode中以xcworkspace文件形式存在,就是我们使用CocoaPods后的产物。可以吧project看成一个仓库,用来存放一个项目中所有用到的资源,它能包含多个target,并定义那个target作为最...
2019-10-29 10:45:25
7679
原创 什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?
这个问题主要讲Xcode编译器的认知,在学习iOS之前有必要学习一下Objective-C的编译环境。在了解LLVM和Clang之前,先得了解一下什么是编译器。编译器是一种计算机程序,它将某种编程语言(高级编程语言)写成的源代码转换成另一种编程语言(低级编程语言)。一个现代编译器的主要工作流程为:源代码->预处理器->编译器->目标代码->链接器->可执行程序...
2019-10-29 10:36:39
9400
转载 浅谈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
1460
转载 iOS中使用RSA加密
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于解密. 首先需要先生成这些文件,然后再将文件导入工程使用,不多说,开始做!一、使用openssl生成所需秘钥文件 生成环境是在mac系统下,使用openssl进行生成,首先打开终
2017-04-18 09:32:51
1439
转载 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
1076
原创 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
1616
原创 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
767
原创 C语言动态内存管理
1-概述动态存储管理的基本问题是:系统如何按请求分配内存,如何回收内存再利用。提出请求的用户可能是系统的一个作业,也可能是程序中的一个变量。空闲块未曾分配的地址连续的内存区称为“空闲块”。占用块已分配给用户使用的地址连续的内存区称为“占用块”。系统刚刚启动时,整个内存可看做一个大的“空闲块”,随着用户请求的进入,系统依次分配相应的内存。在系统
2015-06-10 01:15:21
1132
原创 浅谈C语言中的联合体
联合体union 当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的: 1)联合体是一个结构; 2)它的所有成员相对于基地址的偏移量都为0; 3)此结构空间要大到足够容纳最"宽"的成员; 4)其对齐方式要适合其中所有的成员;下面
2015-06-10 00:58:59
763
原创 iOS8 自定义navigationbar 以及 UIBarButtonItem 边距问题
一。自定义navigationbar - (void)initNavigationBar{ [self.navigationController setNavigationBarHidden:YES]; UINavigationBar *bar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,
2015-06-09 22:38:14
1204
原创 使用storyboard设置按钮边框属性(颜色,宽度,圆角)
通常使用Category时,只能添加方法,不可添加属性。但是在使用Storyboard时我们可能会使用到keyPath,这里设置的key都需要是所设置视图的属性值,并且类型有所限制。例如:我现在有一个按钮,我想设置成圆角,并且是紫色边框。并且我不想写代码,想通过storyboard直接设置。这样看起来很帅(其实就是一个强迫症吧,因为一直在用sb设置整个界面,但是突然出现几个样式,在sb中不
2015-06-09 13:59:37
13412
原创 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
1144
转载 二十岁出头的时候上,你一无所有,你拥有一切
一篇治愈系的励志文,让我想到一句话,青春就是明明一无所有,却仍然相信有一天世界会在你脚下。(一)嘴上说说的人生那年我在离家的时候一个劲地往自己的硬盘里塞《灌篮高手》,我妈一副嗤之以鼻的表情看着我,似乎是在说:“这么大的人了居然还这么喜欢看动漫。”我不知道怎么回应她,只好耸耸肩,因为我实在无法对我亲爱的娘亲说明这部动漫对我的意义。你知道,有
2015-06-04 13:45:53
596
原创 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
3601
转载 UINavigationController使用详解
UINavigationController使用详解 废话少说回到正题,UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的APP中(如qq,系统相册等)都有用到。说是使用详解,其实我只会介绍几个自认为比较重要或者容易放错的地方进行讲
2015-04-24 08:27:01
521
原创 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
697
转载 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
938
原创 UIView的Animaltion
所谓动画效果,就是会动的画,到iOS App中来说的话,就是各种UIView的移动。 想想看,如果我们自己来实现所有UIView的动画效果,需要考虑些什么东西呢? * 该UIView现在在哪儿? * 该UIView最后会动到哪儿? * 该UIView以什么样的方式移动到那儿? * 该动画持续多长时间? * 每次移动的最小时间间隔?
2015-04-09 14:29:55
976
原创 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
630
转载 [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
2424
转载 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
637
原创 OC基础数据类型之NSNumber
假如你能够很轻松的理解NSString的定义和用法,那么NSNumber的话联想一下你就大概能够明白其中的道理和关系了。首先你必须知道C语言的基础数据类型在OC中不是所有地方都支持使用,那么碰到例如copy等不支持使用的情况,我们就必须用OC的基本数据类型了。那么OC的基本数据类型是什么?其实它就是将C语言的数据类型全部打包封装到了一个类里面。这个类里面各种各样的C语言基础数据类型都有,例如int,float,double等当然OC里NSNumber的功能相对要强大很多,它不仅仅包含了C的基本数
2015-04-02 17:20:58
1178
转载 Object-C第二课,会让你找回高中记单词感觉的类属性
看到好的文章就忍不住转发了,好东西要和大家一起分享才够意思嘛。好多地方写的过于细化发杂,其实object-c它可并不像那么复杂啊。有一张图让你学完oc的,下回有空发出来分享给大家。(你别不信,真的比那些几百页的书强)//1. 自动有一个_weight//2. setter/getter//3. nonatomic/atomic, 默认atomic
2015-03-31 20:58:48
801
原创 Object-C第一课,我们要注意到的小细节
在Xcode里编译.m文件时可以自己决定是否手动引用,Xcode自动选择的是自动引用:命令行编译时也可以用得着,例:clang XXX.m -framework Foundation -fobjc-arc-fobjc-arc 自动引用的编译-fno-objc-arc 手动引用的编译强调“-”与字母之间不可有空格,它们是一个整体,不要随意分开它们。使用NSLo
2015-03-30 21:50:49
657
翻译 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
1107
转载 深入理解typedef
typedef作为类型定义关键字,用于在原有数据类型(包括基本类型、构造类型和指针等)的基础上,由用户自定义新的类型名称。 在编程中使用typedef的好处,除了为变量取一个简单易记且意义明确的新名称之外,还可以简化一些比较复杂的类型声明。比如: typedef int INT32;将INT32定义为与int具有相同意义的名字,这样类型INT32就可用
2015-03-25 15:46:45
459
转载 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
628
转载 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
721
转载 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
487
转载 漫谈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
836
翻译 Quick Sort快速排序,顶。
Quick Sort-快速排序此贴由戴维营教育学员翻译,大茶园丁整理,特意为戴维营教育零基础学员课外学习之用.快速排序像归并排序一样是一个分而治之的算法,但它不想归并排序那样,它不需要额外的空间,在待排序的集合内就地排序。这个分割步骤就是选择一个基准点把数组分割,小于或等于基准点的元素全排到左边去,大于或等于基准点的元素全部排到基准点右边去。再依次对左右两边的元素递归地进行快速
2015-03-23 11:00:09
683
转载 结构体中得函数指针,让我们更加方便~
转自:http://blog.youkuaiyun.com/unix21/article/details/9293877结构体指针变量的定义,定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct结构体标识符{成员变量列表;…};struct 结构体标识符 *指针变量名;变量初始化一:struct结构体标识符 变量名={初始化值1,初
2015-03-23 10:56:45
786
空空如也
dismissViewControllerAnimated之后的原页面变形
2015-07-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人