Object-C
文章平均质量分 92
jackgaogaogao
Java、golang、云原生
展开
-
objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
随机数的使用 1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x; 获取1到x之间的整转载 2015-10-17 20:21:46 · 196 阅读 · 0 评论 -
GCD之串行队列与并发队列
串行队列一次只执行一个线程,按照添加到队列的 顺序依次执行并发队列一次可以执行多个线程,线程的执行没有先后顺序UI界面所在的线程队列是串行队列原创 2015-10-25 12:11:29 · 207 阅读 · 0 评论 -
GCD之延时执行--与NSThread比较
CCD:1.代码简洁,不需要写多余的代码;NSThread:1.代码冗杂,需要写额外的方法;2.精确度高;3.可以取消延时执行的 操作原创 2015-10-25 12:29:30 · 276 阅读 · 0 评论 -
GCD 定时器--与NSTimer比较
NSTimer:1.误差小2.运行与当前的runloop中GCD定时器:1.误差 大2.运行在独立的线程中原创 2015-10-25 14:41:04 · 569 阅读 · 0 评论 -
GCD之线程组
线程组的使用情况:线程间前置后置关系的处理,不必使用状态值来做判定,代码更简洁清晰。原创 2015-10-25 13:05:55 · 188 阅读 · 0 评论 -
GCD 信号量
GCD 信号量:将异步线程修改成同步线程。通过信号量的发送和等待,为异步线程人为增加先后顺序。原创 2015-10-25 14:54:07 · 248 阅读 · 0 评论 -
ld: 7 duplicate symbols for architecture x86_64
导入的外部文件和原有的文件重名导致。另外 #import "*.m"也会发生这个错误原创 2015-10-25 22:41:07 · 424 阅读 · 0 评论 -
Objective-C 中的元类(meta class)
在本文我们会看到一个在Objective-C中很陌生的概念——元类。Objective-C中的每个类都有和自己相关联的元类,但我们几乎从来不直接使用它,它们依然是那么神秘。我们将开始学习怎样在运行时创建一个类。通过创建的“class pair”,我会解释什么是元类,然后探讨它对于Objective-C中对象和类的意义。在运行时创建一个类下面的代码在运行时创建了一个NSError的子转载 2015-11-22 12:04:18 · 293 阅读 · 0 评论 -
Object-C系列<Xcode中ARC 下两种释放对象的方法>
应用了 ARC 之后,无疑大大减少了程序员进行内存管理的压力。你再也不用写 release/autorelease 代码了,再也不用写dealloc 法子了。但这不等于程序员不需要内存管理。例如,你需要在 viewDidUnload 法子中对对象进行释放,以防当内存警告发生时,你没有内存可以回收。当然ARC 托管对象的释放方式与 MRC 是不同的。对于 ARC 托管对象,你必须用 ARC 特有转载 2015-11-02 08:40:29 · 751 阅读 · 0 评论 -
Object-C系列<Xcode4.2 和 iOS 5 的ARC机制及用法介绍>
ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过转载 2015-11-02 09:01:30 · 226 阅读 · 0 评论 -
Object-C系列<Objective-C之内存管理>
概述我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题的,但在OjbC中并没有类似的垃圾回收机制,因此它的内存管理就需要由开发人员手动维护。今天将原创 2015-11-02 09:17:31 · 290 阅读 · 0 评论 -
iOS开发UI篇—UITabBarController简单介绍
一、简单介绍UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。 二、UITabBarController的使用1.使用步骤:(1)初始化UITabBarController(2)设置UIWindo转载 2015-11-24 00:01:29 · 169 阅读 · 0 评论 -
Object-C系列-<深入CoreData与问题整理>
CoreData问题分析:1.添加的实体的名称第一个字母必须大写;2.数据类型对应关系不要搞错原创 2015-11-02 12:45:28 · 239 阅读 · 0 评论 -
objective c实现配置文件+反射 工厂创建
1. 先写plist配置文件plist写到resouce里面去通过NSBundle把数据取plist读出来2. 通过NSClassFromString创建类NSClassFromStringNSSelectorFromString正常来说,id myObj = [[NSClassFromString转载 2015-11-24 00:06:59 · 280 阅读 · 0 评论 -
Object-C系列-<push and pop>
http://www.swifthumb.com/portal.php?mod=view&aid=15转载 2015-11-02 12:47:09 · 359 阅读 · 0 评论 -
Object-C系列-<present and dismiss>
http://blog.sina.com.cn/s/blog_7b9d64af0101a0bf.html转载 2015-11-02 12:51:35 · 290 阅读 · 0 评论 -
cordova与ios native code交互的原理
http://itindex.net/detail/50630-cordova-ios-native转载 2015-11-03 13:35:51 · 245 阅读 · 0 评论 -
关于block 循环引用 weakSelf
block代码块里用到的东西,比如主线程里的全局变量,局部变量,UI等,block都会对它指向一个strong指针。也就是说,局部变量所在的局部代码运行完后,局部变量不会释放,直到block消失,它才释放。 这个不太好,这样如果block代码里面有self.something,而block又存储在strong的全局变量里,会导致block对self一个strong指针,self对b转载 2015-11-10 13:51:37 · 267 阅读 · 0 评论 -
property 中的strong 与weak
strong关键字与retain关似,用了它,引用计数自动+1,用实例更能说明一切@property (nonatomic, strong) NSString *string1; @property (nonatomic, strong) NSString *string2; 有这样两个属性,@synthesize string1; @synthe转载 2015-10-24 11:15:23 · 176 阅读 · 0 评论 -
代理与协议的区别
代理的职能:降低对象与对象耦合者的耦合度协议的职能:约束对象和筛选对象,限定参数对象类型。原创 2015-10-24 22:46:57 · 232 阅读 · 0 评论 -
Objective-C中的instancetype和id关键字
作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/16994913转载请注明出处如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!一、什么是instancetypeinstancetype是clang 3.5开始,clang提供的转载 2015-10-17 18:52:10 · 140 阅读 · 0 评论 -
GCD 编程
有些操作无法在异步队列运行,因此必须在主线程(每个应用都有一个)上运行。UI绘图以及任何对NSNotificationCenter的调用必须在主线程长进行。在另一个队列中访问主线程并运行代码的示例如下:123dispatch_sync(dispatch_get_main_queue(), ^{ [self转载 2015-10-17 21:06:30 · 214 阅读 · 0 评论 -
使用CocoaPods被卡住:Updating local specs repositories
pod update 试了还可以用pod install 被墙了,请大家换成pod install --verbose --no-repo-update转载 2015-10-18 19:02:04 · 357 阅读 · 0 评论 -
[转]CocoaPods安装和使用教程
Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usageCocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙转载 2015-10-18 19:10:41 · 248 阅读 · 0 评论 -
CALayer与UIView的关系
1. UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView本身更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等,实际上内部都是在访问它所包含的CALayer的相关属性。2. UIView有个重要属性layer,可转载 2015-10-18 20:02:36 · 223 阅读 · 0 评论 -
Cocoa Touch框架
iOS 应用程序的基础 Cocoa Touch 框架重用了许多 Mac 系统的成熟模式,但是它更加专注于触摸的接口和优化。UIKit 为开发者提供了在 iOS 上实现图形,事件驱动程序的基本工具,其建立在和 Mac OS X 中一样的 Foundation 框架上,包括文件处理,网络,字符串操作等。Cocoa Touch 具有和 iPhone 用户接口一致的特殊设计。有了 UIKit,转载 2015-10-18 21:06:13 · 615 阅读 · 0 评论 -
NSTimer和CADisplayLink的基本用法
简要区别:NSTimer初始化器接受调用方法逻辑之间的间隔作为它的其中一个参数,预设一秒执行30次。CADisplayLink默认每秒运行60次,通过它的frameInterval属性改变每秒运行帧数,如设置为2,意味CADisplayLink每隔一帧运行一次,有效的逻辑每秒运行30次。此外,NSTimer接受另一个参数是否重复,而CADisplayLink默认为重复,直到它失效。转载 2015-10-18 16:02:16 · 210 阅读 · 0 评论 -
iOS学习之iOS沙盒(sandbox)机制和文件操作(一)
1、iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。 1.1、每个应用程序都有自己的存储空间 1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行转载 2015-11-04 00:05:16 · 212 阅读 · 0 评论 -
crosswalk cordova
首先呢, crosswalk 只是针对安卓平台的。那么我们为什么要使用 crosswalk 呢.因为低于android 4.4 的webview 是一个蹩脚的Android WebKit浏览器内核(android版本越低性能就越差,android 4.4以上已经使用了Chromium ),所以英特尔公司发布了Crosswalk引擎,可以让 Android 4.0-4.3 的手机上的转载 2015-10-19 21:40:02 · 553 阅读 · 0 评论 -
iOS设计模式——Category
http://blog.csdn.net/lovefqing/article/details/8289851转载 2015-10-19 10:54:04 · 209 阅读 · 0 评论 -
objc/runtime 探索
http://blog.devwu.com/develop/2014-08-15/objcruntime-explore1/?utm_source=tuicool&utm_medium=referral转载 2015-10-19 11:37:03 · 196 阅读 · 0 评论 -
NSZone
在碰到allocWithZone, copyWithZone总会有个疑问,这个NSZone到底是个什么东西?简单来说,可以想象成一个内存池,alloc或是dealloc这些操作,都是在这个内存池中操作的。cocoa总是会配置一个默认的NSZone,任何默认的内存操作都是在这个“zone”上操作的。默认的NSZone的缺陷在于,它是全局范围的,时间一长,必然会导致内存的碎片化,如果你转载 2015-10-19 13:38:48 · 159 阅读 · 0 评论 -
iOS:KVO的概述与使用
一,概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。二,使用方法系统框架已经支持KVO,所以程序员在使用的时候非常简单。1. 注册,指定被观察者的属性,2. 实现回调方法3. 移除观察三转载 2015-10-20 11:34:42 · 229 阅读 · 0 评论 -
快速排序
void SwapVar(int *a,int i,int j){ int temp; temp = a[i]; a[i] = a[j]; a[j] = temp;}//快速排序 递归调用void QuickSort(int *arr,int left,int right){ int last;转载 2015-10-20 09:16:18 · 154 阅读 · 0 评论 -
Objective-C中的Block
http://www.cocoachina.com/ios/20150109/10891.html转载 2015-10-20 10:09:28 · 136 阅读 · 0 评论 -
iOS 关于UITableViewCell复用机制的理解
先说一句题外话,Apple官方建议不要在scrollview中嵌套scrollview。tableview也是scrollview的一种,不到万不得已时不要将它嵌到scrollview中。我们回到正题,UITableView是很高效的,与它的cell复用机制密不可分。cell复用指的是什么呢?通俗地说一下。假设我们的tableview中有10个cell,窗口只容得下前5个,每个cell都是一样的,转载 2015-10-20 11:42:48 · 238 阅读 · 0 评论 -
xcode的环境变量,Build Settings参数,workspace及联编设置
1, 添加一个已经做好的静态库的方法:GessCore 加入方法先把工程文件拖到当前工程中选中Targets中的工程,在右边选项卡中进行设置在Build Settings 中1. Linking->Oher Linker Flags 中添加-ObjC -all_load两个字段2. Search Paths->Header S转载 2015-12-27 14:40:08 · 366 阅读 · 0 评论