自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南宫辞迁

自由懒散的浪漫主义程序员。

  • 博客(75)
  • 收藏
  • 关注

原创 iOS z-index属性失效

iOS的弹性滑动属性-webkit-overflow-scrolling: touch会导致 z-index 属性失效加transform:translateZ(1px);

2021-08-11 19:22:25 569

转载 Xcode 快捷键

从雨痕老大的博客上转来的 http://www.rainsts.net/article.asp?id=1066 读书人偷书不算窃 :) 1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT +

2014-04-15 10:16:18 631

原创 block介绍(四)揭开神秘面纱(下)

终于有空开始这系列最后一篇的编写。这一篇,我们将看到block的内存管理的内部实现,通过剖析runtime库源码,我们可以更深刻的理解block的内存运作体系。看此篇时,请大家同时打开两个网址(或者下载它们到本地然后打开):http://llvm.org/svn/llvm-project/compiler-rt/trunk/BlocksRuntime/runtime.chttp

2014-04-15 09:01:49 717

原创 block介绍(三)揭开神秘面纱(上)

上一篇我们总结了各个情况下,block及其引用到的内存位置情况。接下来几篇,我们将剖析编译器转码以及运行时库源码来一探block的究竟。 block到底是什么我们使用clang的rewrite-objc命令来获取转码后的代码。 1、block的底层实现我们来看看最简单的一个block:图一 这个block仅仅打印栈变量i和j的值,其被clang转

2014-04-15 09:01:07 854

原创 Block介绍(二)内存管理与其他特性

我们在前一章介绍了block的用法,而正确使用block必须要求正确理解block的内存管理问题。这一章,我们只陈述结果而不追寻原因,我们将在下一章深入其原因。一、block放在哪里我们针对不同情况来讨论block的存放位置:1.栈和堆以下情况中的block位于堆中:1234567891011121

2014-04-15 09:00:24 836

原创 Block介绍(一)基础

一、概述Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。 二、热身先看一个比较简单的Block例子:int multiplier = 7;int (^myBlock)(int) = ^(int num) { return nu

2014-04-15 08:59:41 813

原创 iOS多线程编程指南(附录)

本附录描述了Mac OS X和iOS上面一些关键的高级线程安全的框架。本附录的信息有可能会发生改变。Cocoa在Cocoa上面使用多线程的指南包括以下这些:不可改变的对象一般是线程安全的。一旦你创建了它们,你可以把这些对象在线程间安全的传递。另一方面,可变对象通常不是线程安全的。为了在多线程应用里面使用可变对象,应用必须适当的同步。关于更多信息,参阅”可变和不可变对比”。许多对象在

2014-04-15 08:54:49 661

原创 iOS多线程编程指南(四)线程同步

第四章      线程同步应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有可能以意想不到的方式互相干扰。比如,一个线程可能覆盖其他线程改动的地方,或让应用程序进入一个未知的潜在无效状态。如果你幸运的话,受损的资源可能会导致明显的性能问题或崩溃,这样比较容易跟踪并修复它。然而如果你不走运,资源受损可能导致微妙的错误,这些错误不会立即显现出来,而是很久

2014-04-15 08:53:58 838

原创 iOS多线程编程指南(三)Run Loop

Run LoopsRun loops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。Run loop的管理并不完全自动的。你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fundatio

2014-04-15 08:52:54 696

原创 iOS多线程编程指南(二)线程管理

线程管理Mac OS X和iOS里面的每个进程都是有一个或多个线程构成,每个线程都代表一个代码的执行路径。每个应用程序启动时候都是一个线程,它执行程序的main函数。应用程序可以生成额外的线程,其中每个线程执行一个特定功能的代码。当应用程序生成一个新的线程的时候,该线程变成应用程序进程空间内的一个实体。每个线程都拥有它自己的执行堆栈,由内核调度独立的运行时间片。一个线程可以和其他线程或其他

2014-04-15 08:51:28 582

原创 iOS多线程编程指南(一)关于多线程编程

第一章      关于多线程编程多年来,计算机的最大性能主要受限于它的中心微处理器的速度。然而由于个别处理器已经开始达到它的瓶颈限制,芯片制造商开始转向多核设计,让计算机具有了同时执行多个任务的能力。尽管Mac OS X利用了这些核心优势,在任何时候可以执行系统相关的任务,但自己的应用程序也可以通过多线程方法利用这些优势。1.1        什么是多线程多线程是一个比较轻量级的方法来

2014-04-15 08:50:40 627

原创 ASIHttpRequest的requestFinish代理函数到底在什么线程执行

用ASIHttpRequest进行异步加载数据时,加载成功后会调用代理函数1- (void)requestFinished:(ASIHTTPRequest *)request开始我以为会在当前线程中执行,后来发现有时是,有时会跑到主线程中执行,这问题一直纠结至今。今天使劲google一番,终于得到结果,在ASIHTTP

2014-04-15 08:45:59 638

原创 performSelectorOnMainThread:withObject:waitUntilDone: not found in proctrol

最近写了个服务器交互类,里面有这么一段代码:...@property (nonatomic, assign) id delegate;...[self.delegate performSelectorOnMainThread:@selector(beginReceiveSOSSender) withObject:nil waitUntilDone:YES];...编译器总是弹出这

2014-04-15 08:45:21 735

原创 怎样将double强制转换为float

标记:iphone开发直接这样:float x = [self aComplexMethodToGetADoubleValue];有时会出现莫名其妙的结果,最可能的原因就是溢出。如何解决反向转换?使用NSNumber类double doubleX = [self aComplexMethodToGetADoubleValue];NSNumber number = [NSN

2014-04-15 08:44:31 7274

原创 撤销(下架)已经通过审核的app

在itunesconnect里的app详情里面找到rights and pricing按钮选择specific stores 然后选择Deselect all取消所有地区选择后,在app详情里就能看到delete app按钮了。这是最佳的下架做法。

2014-04-15 08:43:32 1146

原创 Xcode警告:Multiple build commands for output file

[WARN]Warning: Multiple build commands for output file /Developer/B/Be/build/Release-iphonesimulator/BB.app/no.pngtarget引用了名字重复的资源找到当前的target,展开之后,找到Copy Bundle Resources栏目,然后在里面找到重复名字的资源,删除不要的那个即

2014-04-15 08:42:28 3351

原创 xcode编译警告:Missing sentinel in function call

Missing sentinel in function call出现这个警告是因为在调用可变参数的函数时,忘记结尾的nil。比如 array = [NSArray arrayWithObjects:@"abc", @"def", @"jik"];//这一行将产生警告arr = [NSArray arrayWithObjects:@"abc", @"def", @"jik", n

2014-04-15 08:41:31 757

原创 CFBundleVersion in Info.plist file must contain a higher version

在更新app的版本时,遇到这样的错误:CFBundleVersion in the Info.plist file must contain a higher version than that of the previously uploaded version.apple可能只比较CFBundleVersion的版本,在plist里面叫Bundle versions string在

2014-04-15 08:40:45 902

原创 xcode生成文档

xocde本身不具备文档生成功能但是可以使用特定格式的注释结合headerdoc2html工具来生成文档。点脚本符号,选择HeaderDoc选中函数行,或者class行,点这个会自动生成注释,包含填充项。最后,打开命令行,进入工程文件目录:12find . -name "*.h" -exec headerdoc2htm

2014-04-15 08:39:16 766

原创 xcode编译警告: XXX has different visibility (default) in lib.a and (hidden) in xx.o

今天把zxing的库拿来用,放工程里,一编译,出现这个警告:XXX has different visibility (default) in lib.a and (hidden) in xx.oStackFlow上如是说:去除Symbols Hidden by Default选项的对号。但是没效果- -,还是那一大堆警告。最后发现 把Symbols Hidden by D

2014-04-15 08:38:30 849

原创 搞清objc的重载以及void指针

两个类:@interface MyClass : NSObject{}- (void)show;@end@implementation MyClass- (void)show { NSLog(@"MyClass");}@end@interface MySubClass : MyClass{}@end@implementation MySubClass- (void)s

2014-04-15 08:37:45 655

原创 当子view的frame超出父view时,会怎样?

当子view突破了父view,会发生什么情况?假设黑色view是window,红色view是黑色view的子view,绿色view是红色view的子view:如果触摸绿色view的超出的部分,绿色view并不会响应触摸事件,这时接受到事件的是黑色view;而如果绿色view是个UIScrollView,先触摸绿色view的未超出区域,然后向左拖动,那么即使手指已经移动到红色区域外的

2014-04-15 08:37:09 1212

原创 让UIScrollView的子view响应触摸事件

有时候在UIScrollView中有某些子视图需要响应一些触摸事件,比如拖动、画板等但是默认情况下,触摸事件会被UIScrollView捕获实际上解决的方法很多,这里我先列出一种(自认为最简单的):先设置UIScrollView的属性:scrollView.canCancelContentTouches = YES;scrollView.delaysContentTouches

2014-04-14 10:56:11 2199

原创 NSAutoReleasePool文档摘抄

自动释放池永远只能在与创建时所在的上下文相同的上下文中被drain,这里所说的上下文指的是一个函数中或者一个run loop体中。自动释放池只能“内联”式使用。我们永远没有任何理由将一个自动释放池的实例作为一个类的成员变量。如果你释放了一个不在栈顶的自动释放池,这会导致栈中位于这个池之上的所有未被释放的自动释放池被释放。另外:If you neglect to send relea

2014-04-14 10:49:38 483

原创 CAAnimation相关

在一个delegate函数里面区分不同的caanimation1234567891011121314151617181920212223242526CATransition *animation = [CATransitionanimation];

2014-04-14 10:48:00 627

原创 免99美刀XCode破解真机调试

一、这样做以后能怎样以device模式编译出app可以再越狱后的设备上运行二、要会点什么命令行,也就是terminal、终端、控制台。。。vim三、开始吧!1、制作一个证书打开实用工具-钥匙串访问。然后在菜单栏里点击钥匙串访问-证书助理-创建证书第一个步骤比较重要,必须要把名称命名为iPhone Crack Developer(这个名字跟后面的一些小脚本对应

2014-04-14 10:44:21 1783

原创 CoreText基础-字体必修课

介绍一些字体的术语,以及对应的英文名称字体(Font):是一系列字号、样式和磅值相同的字符(例如:10磅黑体Palatino)。现多被视为字样的同义词字面(Face):是所有字号的磅值和格式的综合字体集(Font family):是一组相关字体(例如:Franklin family包括Franklin Gothic、Fran-klinHeavy和Franklin Compressed)

2014-04-14 10:42:07 788

原创 CoreText基础-排版必修课

行距(Leading):又称行间距。指的是行的基线到另一行基线之间的距离(Leading的史称来源于旧式排版时用铅条隔开行之间的距离,读作”ledding”)。合成(Composition):是一种通篇字符间距的调整以求更好的视觉效果。多数程序都是按行排列文本的,这样可能会造成相邻行间的空格混乱。字距(Tracking):决定单词中每个字母之间的距离词间距(Word spacing):

2014-04-14 10:41:28 918

原创 用Doxygen为objective-c代码生成文档

从xcode3升级到xcode4后,那一堆Header Doc选项没了xcode3的Header Doc加命令行方式生成的文档是基于注释的,而且逻辑整理功能很薄弱。Doxygen很强大,1.7.5.1版本对objective-c的支持已经很完善了,我们真幸福啊~简单说说整个流程吧:到sourceforge上下载dmg,其实我倒更喜欢源码编译方式,那种自由感~http://sou

2014-04-14 10:40:26 1472

原创 view在UIViewController中的生命周期

理解view的生命周期:在UIViewController中,view(黑体的view指的是controller的view属性)有两个循环:加载和卸载循环。当程序的一部分向controller请求view的指针且view不在内存中时,view会进入加载循环,controller会将view加载入内存。当程序接收到内存警告时,controller会尝试卸载view,在卸载循环中,contro

2014-04-14 10:38:39 678

原创 设置标准控件的文字为中文

在info.plist中将Localization native development region设置为china在工程的Localizations里面添加Chinese Hans和Chinese Hant这样邮件发送、视频、音频播放器的控件字符会成为中文(简体、繁体)

2014-04-14 10:35:17 638

原创 用application uploader传app时,遇到错误

Invalid result returned from the software lookup service先检查自己是否在itunesconnect中设置了app准备上传。

2014-04-14 10:34:13 1229

原创 iOS开发Tips

Xcode 常用编译选项设置在xcconfig文件中指定即可。用标准库连接LINK_WITH_STANDARD_LIBRARIES = YES如果激活此设置,那么编译器在链接过程中会自动使用通过标准库的链接器。Info.plist 输出编码INFOPLIST_OUTPUT_FORMAT = binary指定Info.plist文件的输出编码(默认情况下,输出与输

2014-04-14 10:32:43 846

原创 xcode中的get-task-allow有什么用?

get-task-allow, when signed into an application, allows other processes (like the debugger) to attach to your app. Distribution profiles require that this value be turned off, while development profil

2014-04-14 10:31:26 2149

原创 Plist字段列表,很全

bundle字段这些字段名都是XML中的名称,在xcode的属性编辑器中,名字并不相同bundle目录中的属性列表详细描述了有关该bundle的信息。Finder和一些系统API在一些情况下会使用这些信息。bundle支持下列字段类型:Core Foundation字段–描述了bundle的综合属性Cocoa特定的字段–描述了和Cocoa有关的bundle的属性Finder

2014-04-14 10:29:24 692

原创 SVN分支与合并

一些相关的概念和原理分支(branch)和标记(tag)对于 SVN 来说就只是副本(copy),没有任何其它意义。分支和标记的意义是我们人为给予的。· SVN 的副本是通过”cheap copies “来实现的,建立一个副本就类似 Unix 中创建一个硬链接(hard link),空间和时间的消耗都是固定并且很小的,因此不必太过担心副本太多而导致性能问题。· SVN 的文件储存 是通

2014-04-14 10:27:48 3692

原创 Xcode4.3 Archive和发布中的错误

打包之后选择验证,出现错误:[projectname] does not contain a single–bundle application or contains multiple products. Please select another archive, or adjust your scheme to create a single–bundle application.

2014-04-14 10:25:45 707

原创 创建含有category的静态库,selector not recognized的解决方案

一、异常的原因在连接一个含有category的静态库的时候,往往会得到一个运行时exception “selector not recognized”。这是由于 UNIX的静态库实现、linker和Objective-C的动态结构三者之间的问题引起的。Objective-C并不为每个函数定义linker symbol,它只为每个class生成linker symbol。(objc的动态

2014-04-14 10:24:27 631

原创 ios4.x下CG绘图颜色数组

使用rgba值生成的颜色与[UIColor whiteColor]生成的颜色无法混用来绘制渐变ios5下:12UIColor *color = [UIColor colorWithRed:0.7green:0.8blue:1.0alphe:1.0];NSMutableArray*colors = [NSMu

2014-04-14 10:23:18 666

原创 新xcode的literal syntax是什么

New Objective-C Literal Syntax for NSArray, NSDictionary 是以@字符开始的方式简单地创建数组、字典、NSNumber常量。代码如下:NSNumber *n1 = @1000; // [NSNumber numberWithInt:1000] NSNumber *n2 = @3.1415926; // [NSNumber numbe

2014-04-14 10:22:10 468

空空如也

空空如也

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

TA关注的人

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