iOS
文章平均质量分 73
LVXIANGAN
这个作者很懒,什么都没留下…
展开
-
内存抖动、内存泄露、内存溢出
内存抖动:在短时间内有大量对象被创建或者被回收的现象,主要原因是频繁在循环里创建对象。 在程序里,每创建一个对象,就会有一块内存分配给它;每分配一块内存,程序的可用内存也就少一块;当程序被占用的内存达到一定临界程度,GC 也就是垃圾回收器(Garbage Collector)就会出动,来释放掉一部分不再被使用的内存。Android 里的 View.onDraw() 方法在每次需要重绘的时候都会被调用,这就意味着,如果你在 onDraw() 里写了创建对象的代码,在界面频繁刷新的时候,你就也会频繁创建出一大原创 2020-09-06 16:25:34 · 571 阅读 · 0 评论 -
CPU性能指标之DMIPS、MIPS
MIPS,DMIPS和MFLOPS是常用的CPU性能评估标准。MIPS: 每秒执行了多少百万条指令。全称:Million Instructions executed Per Second DMIPS:D是Dhrystone的缩写,在MIPS 前面加上 Dhrystone (整数运算),用于测整数计算能力。 注意:Dhrystone,它是一个专有名词,一个简短的综合基准程序,有ADA、...原创 2020-02-14 22:55:52 · 18475 阅读 · 1 评论 -
C语言之malloc函数
原型: void *malloc(unsigned int size);#include或#include malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。malloc 向系统申请分配指定size个字节的内存空间(连续的一块内存)。返回类型是 void* 类转载 2013-11-21 11:00:04 · 1764 阅读 · 0 评论 -
在xcode如何在同一窗口打开第二个工程
新建一个工作区--》new workspace--》在这个工作区中project navigator右键--》add Files to "my workspace" --》把这两个工程导入进来就可以了。以后就直接打开这个工作区,这个工作区中的项目就都打开了。原创 2013-11-26 17:28:44 · 8012 阅读 · 1 评论 -
Xcode工程中怎么关联另一个工程
Xcode工程中如何关联另一个工程选中工程Target-->Build Settings -->Search Paths,在head search paths中添加另一工程的路径在自己工程导入另一个工程,有点像导入静态库,只是有点像,如下图:最好先学会静态库的生成,会很有帮助。导入另一个工程" title="xcode 导入另一个工程" st原创 2013-11-26 17:40:32 · 13513 阅读 · 0 评论 -
IOS基础:深入理解Objective-c中@class的含义
objective-c中,当一个类使用到另一个类时,并且在类的头文件中需要创建被引用的指针时,如下面代码:A.h文件C代码 #import "B.h" @interface A : NSObject { B *b; } @end 为了简单起见:A类是引用类,B类是被引用类,这里先不考虑转载 2013-11-26 16:11:56 · 1279 阅读 · 0 评论 -
iOS开发:xcode4中使用静态库和工作区
在xcode4中,为了将一些比较独立的功能封装起来,或者多人同时开发时,需要将程序打包成静态库,但在xcode4中设置工作区、工程和静态库等遇到了一系列问题,不知道是不是xcode的高版本中已经解决了这些问题?我用的是xcode4.0(4A304a), SDK是4.3。从网上能够查到的写的比较全面的使用和建立静态库的文章是CarbonFive的这篇文章。但我按照这个文章逐个试验后,发现几个转载 2013-11-26 17:46:46 · 1167 阅读 · 0 评论 -
C语言链表的概念
1、什么是结点? 采用动态分配的办法为一个结构分配内存空间,每一次分配一块空间可用来存放一个学生的数据,我们可称之为一个结点。 有多少个学生就应该申请分配多少块内存空间,也就是说要建立多少个结点。当然用结构数组也可以完成上述工作,但如果预先不能准确把握学生人数,也就无法确定数组大小。而且当学生留级、退学之后也不能把该元素占用的空间从数组中释放出来。 用动态存储的方法可以很好地解转载 2013-11-20 16:28:56 · 3775 阅读 · 0 评论 -
struct和typedef struct、enum与typedef enum、链表与结构体的区别
iOS不支持c++,只支持c和object c: 1在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上转载 2013-11-28 10:46:29 · 6548 阅读 · 0 评论 -
#pragma mark的用法
iPhone SDK开发范例大全第五章之一:#prama mark:2009年09月18日星期五iPhone SDK开发范例大全即iPhone Developer's CookBook的中文译本,程式可由erica网站下载。第五章讲基本表格,程式共有十个。看第一个程式---01a-Base Table,就遇上麻烦,见下图一第3行及第16行,有#pragma mark ...转载 2013-11-28 12:37:07 · 7892 阅读 · 0 评论 -
ios UITapGestureRecognizer 单指单击、单指多击、多指单击、多指多击事件操作
在ios开发中,需用到对于手指的不同操作,以手指点击为例:分为单指单击、单指多击、多指单击、多指多击。对于这些事件进行不同的操作处理,由于使用系统自带的方法通过判断touches不太容易处理,而且会有事件之间的冲突。接下来,通过以UITapGestureRecognizer 手势实现此功能需求 代码如下:ViewController.m中的viewDidLoad方法: 1:转载 2013-11-28 10:21:48 · 3357 阅读 · 0 评论 -
iOS Core Animation 简明系列教程
iOS Core Animation 简明系列教程 看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大。自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽快修改。1.什么是Core Animation?它是一套包含图形绘制,投影,动画的OC类集合。它就是一个framework。通过CoreAnimation提供的接口,你可以方转载 2013-12-06 15:14:47 · 30097 阅读 · 2 评论 -
iOS应用的真机调试
必须条件:99美元的帐号,没有这个就不用再往下看了。 首先,登录到http://developer.apple.com/devcenter/ios/index.action,如果已经购买了iPhone Develop Program(iDP),登录进去后,页面右上角会看到如下图所示的页面: 点击第一项:iOS Provisioning Portal,然后转载 2013-12-06 15:34:24 · 1278 阅读 · 0 评论 -
inline函数_内联函数的一些总结
inline函数我们看下面的函数,函数体中只有一行语句: double Average(double total, int number){ return total/number; } 定义这么简单的函数有必要吗?实际上,它还是有一些优点的:第一,它使程序更可读;第二,它使这段代码可以重复使用。但是,它也有缺点:当它被频繁地调用的时候,由于调用函转载 2013-12-10 17:58:50 · 1796 阅读 · 0 评论 -
iOS动态库
经常有某些第三方类库需要添加libz.dylib文件,不知道其作用。同时libz貌似有很多版本,什么1.2.5,1.1.3什么的,各版本之间有啥差异呢?A file ending in the extension .dylib is a dynamic library: it's a library that's loaded at runtime instead of at comp原创 2013-12-05 09:50:44 · 3263 阅读 · 0 评论 -
新手开发IOS的疑惑
1.Prefix.pch 是做什么用的?是一个加快编译速度的工具。只有永远不会变化或很少发生变化的头文件才能被添加到前缀文件中。这样做可以使框架的代码提前编译,并对所有类可见。但是,如果添加到前缀文件中的头文件发生变化,那么所有的代码会被重新编译,这也是为什么只能向前缀文件添加不变文件的原因。2.if((self = [super init])) 为什么会这么写?- (转载 2013-12-11 18:01:41 · 983 阅读 · 0 评论 -
if判断对象是否为空
在android中,判断对象obj是否为空的方法如下:if (null != obj) { System.out.println("对象不为空");}在iOS中,可以根据指针指向的内存地址是否为0来判断UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"img_%d.png", i]];原创 2013-12-05 09:44:42 · 8301 阅读 · 1 评论 -
iOS的轻量级XML解析库 TBXML
TBXML是一个用于iOS上的解析速度非常快的轻量级XML解析库。提供了非常简洁的接口,使用起来很简单。它提供了可以通过文件路径、URL、XML文件内容、内容字符串等方式载入XML文件,提供了获取XML节点和属性值的方法,以及一个遍历节点的方法。不过TBXML只提供了读的功能。初始化和释放TBXMLTBXML* tbxml =[ [[TBXML alloc] initWit转载 2013-12-05 09:24:16 · 1804 阅读 · 0 评论 -
更新证书错误Code Sign error: Provisioning profile ‘XXXX'can't be found
在Xcode中当你在更新了你得证书而再重新编译你的程序,真机调试一直会出现 Code Sign error: Provisioning profile ‘XXXX’ can't be found是不是会另你很恼火。下面说说解决方法,让你很好的解决这个问题。 1.关闭你的项目,找到项目文件XXXX.xcodeproj,在文件上点击右键,选择“显示包内容”(Show Package Content转载 2013-12-30 10:13:41 · 1335 阅读 · 0 评论 -
NSString与int和float的相互转换
NSString *tempA = @"123"; NSString *tempB = @"456";1,字符串拼接 NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB];2,字符转intint intString = [newString int转载 2013-12-31 18:32:23 · 1001 阅读 · 0 评论 -
iOS之ScrollView 左右滑动(或者上下滑动)支持其中一种
1.左右滑动:确定UIScrollView的contentSize,如果UIScrollView中的内容填充满上下(即内容触到顶及底部)则实现了只能左右滑动2.上下滑动:确定UIScrollView的contentSize,如果UIScrollView中的内容填充满左右(即内容触到右部及左部)则实现了只能上下滑动...转载 2014-01-02 12:50:35 · 21260 阅读 · 0 评论 -
ios开发小知识
1、最简单关闭软键盘的方法 [view endEditing:YES];暂时总结出这些,后续会慢慢增加有点乱,实在是文笔不好,请见谅九十九条啊,我慢慢积累,一年估计还是能写到的吧 //以下转自cc,http://www.cocoachina.com/bbs/read.php?tid=105689&page=1(一)关于UITa转载 2014-01-08 11:17:15 · 1917 阅读 · 0 评论 -
Foundation Kit
Foundation Kit是什么?你可以把它看作Java JDK中的java.lang包。不论是JavaME、JavaEE还是Android,各种变种Java环境,都拥有的基础类库,或者拥有它的一部分。Foundation Kit在Mac OS X和iOS开发中都包含。是这两个环境的最基础ObjC类库。比如,下面是Mac环境代码一般会引用的头文件:#import Coco转载 2013-12-25 09:07:57 · 1707 阅读 · 0 评论 -
iOS中delegate(委托)的使用
首先,大家应该都明白的是委托是协议的一种,顾名思义,就是委托他人帮自己去做什么事。也就是当自己做什么事情不方便的时候,就可以建立一个委托,这样就可以委托他人帮自己去实现什么方法。最后,我想分享一下在使用委托的时候的一些心得和注意事项。心得:delegate的命名要准确,尽量看名字就知道用法。delegate和通知有的用法有些象,但是前者是单对单的,后者是单对多的情况。注意:原创 2014-01-20 10:19:56 · 1098 阅读 · 0 评论 -
网讯IOS笔试题
网讯IOS笔试题答案是我自己的想法 仅供参考1 程序在内存中运行时,内存分几个区?各自用途?答:栈区 由编译器自动分配释放存放函数的参数值,局部变量的值等。在高级语言中不需要显式的分配和释放堆区 一般由程序员手动分配释放,如果不释放可有由OS释放。数据区 存储全局和静态变量。初始化的全局和静态变量在一块区域,未初始化的放在相邻的一块区域,程序结束后由系统释放。代码区转载 2014-01-24 17:17:48 · 1798 阅读 · 0 评论 -
objective c输出控制符
%@ 对象%d, %i 整数%u 无符整形%f 浮点/双字%x, %X 二进制整数%o 八进制整数%zu size_t%p 指针%e 浮点/双字 (科学计算)%g 浮点/双字%s C 字符串%.*s Pascal字符串%c 字符%C unichar%lld 64位长整数(long long)%llu 无符64位长整数%Lf 64位双字原创 2014-01-26 10:46:26 · 1037 阅读 · 0 评论 -
objective c关于下划线和双下划线的用法
关于@synthesis、变量、属性、属性名前面下划线的问题那个下划线只是为了方便区别全局变量和本地变量,或者防止变量重名,只是一种编程风格,实际上对代码没有实质影响,更无法替代@synthesize语句的功能。你只要记住一个真理,凡是在头文件里面定义了@property的变量,必定要@synthesize。看到很多源代码里面,使用前面带下划线变量,然后在@synthesize转载 2014-01-27 16:53:34 · 9590 阅读 · 0 评论 -
ObjectiveC基础-ivar是什么意思
Objective-C运行时定义了几种重要的类型。Class:定义Objective-C类Ivar:定义对象的实例变量,包括类型和名字。Protocol:定义正式协议。objc_property_t:定义属性。叫这个名字可能是为了防止和Objective-C 1.0中的用户类型冲突,那时候还没有属性。Method:定义对象方法或类方法。这个类型提供了方法的名字(就是**选择器**)、参原创 2014-01-27 16:52:43 · 14615 阅读 · 0 评论 -
对 objective-c 内存管理的一点儿认识
NSString *str1 = [NSString stringWithString:@"str1"];NSString *str2 = @"str2";NSString *str3 = [NSString stringWithFormat:@"%@", @"str3"];NSString *str4 = [[NSString alloc] initWithString:转载 2014-02-07 15:21:11 · 930 阅读 · 0 评论 -
IOS 入门开发之使用XCODE4制作静态库详解
注意:首先确保你的XCODE4使用IOS5,否则请下载IOS5在继续阅读。IOS程序是由Objective-c语言构成,而是Objective-c语言中每一个类又分成 .h .m 文件。静态库可以将这些程序的类封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态库中封装的方法。总的来说IOS静态库适合去制作第三方提供的SDK,废话不多说了我们直接进正题。转载 2014-02-08 17:36:34 · 883 阅读 · 0 评论 -
iOS面试题汇总
1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源 还是只有一份,那如果我们对A转载 2014-02-07 17:41:26 · 1098 阅读 · 0 评论 -
NSAutoreleasePool
NSAutoreleasePool是什么?它实际上是个对象引用计数自动处理器。首先,NSAutoreleasePool可以同时有多个,它的组织是个栈,总是存在一个栈顶pool,也就是当前pool,每创建一个pool,就往栈里压一个,改变当前pool为新建的pool,然后,每次给pool发送drain消息,就弹出栈顶的pool,改当前pool为栈里的下一个pool。接下来要注转载 2014-02-24 10:00:53 · 926 阅读 · 0 评论 -
ios 面试题
1、Object-C有多继承吗?没有的话用什么代替?cocoa 中所有的类都是NSObject 的子类多继承在这里是用protocol 委托代理 来实现的你不用去考虑繁琐的多继承 ,虚基类的概念.ood的多态特性 在 obj-c 中通过委托来实现.2、Object-C有私有方法吗?私有变量呢?objective-c – 类里面的方法只有两种, 静态方法和转载 2014-02-24 10:03:52 · 2903 阅读 · 0 评论 -
程序入口-UIApplicationMain详解
Xcode4.2之前的main函数如下:int main(int argc, char *argv[]){ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil);转载 2014-02-11 14:34:13 · 16979 阅读 · 0 评论 -
ios UIView的clipsTobounds属性
clipsToBounds属性取值:BOOL(YES/NO)作用:决定了子视图的显示范围。具体的说,就是当取值为YES时,剪裁超出父视图范围的子视图部分;当取值为NO时,不剪裁子视图。默认值为NO。如下图所示:view2是view1的子视图.转载 2014-03-11 11:49:17 · 7757 阅读 · 0 评论 -
UIScrollView的属性总结
UIScrollView的属性总结 属性作用CGPoint contentOffSet监控目前滚动的位置CGSize contentSize滚动范围的大小UIEdgeInsets contentInset视图在scrollView中的位置i转载 2014-03-11 14:36:51 · 791 阅读 · 0 评论 -
iOS开发之CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view)
一)三个结构体:CGPoint、CGSize、CGRect1. CGPoint[plain] view plaincopy /* Points. */ struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoi转载 2014-03-11 10:54:29 · 4482 阅读 · 0 评论 -
NSString用法、Obj-C数组以及字符串拼接与分割
一、介绍使用NSString创建一个字符串的代码如下:#import int main (int argc, char *argv[]){ NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init]; NSString *str=@"Programming is fun"; NSLog(@"%@",str)转载 2014-02-24 10:20:01 · 16920 阅读 · 0 评论 -
NSLog 和 printf区别
1.最本质的区别在于NSLog输出的日志,在debug下面,NSLog的输出会被写到system.log,而printf是不具备日志属性的。2.NSLog会自己加上换行符,不需要自己添加换行符,printf需要手动添加\n3.NSLog会自动加上时间和进程信息,而printf仅将输入的内容输出不会添加任何额外的东西。4.输入类型有区别:NSLog期待NSString*,原创 2014-03-11 18:08:14 · 4387 阅读 · 0 评论 -
IOS之路-枚举遍历的方式
对于集合(如NSArray)元素的遍历,OC中同java类似。但是也有不同之处,下面我们来看看都有哪些遍历集合元素的方法吧:1.通过索引遍历 类似于通过数组下标来遍历集合 1 NSArray *array;2 array = [NSArray arrayWithObjects :@"one",@"two",@"three",nil];3转载 2014-03-13 11:52:57 · 6838 阅读 · 0 评论