随笔分类 - iOS
关于IOS的相关
摘要:VO简而言之就是:基于键值的观察者,实际上就是观察者模式。Cocoa Framework已经为我们提供了这一模式,不需要我们自己来实现了。我们只需要按照约定的方式去做就可以了。KVO主要用于用户界面交互,当多个View共同使用了同一个实体,当这个实体中的某个属性改变时,如果需要更新多个界面,KVO的作用就发挥出来了。下面给出一个简单的示例,来展示如何使用KVO。示例下载有两种方式可以在键值改变的时候给观察者发送通知:自动方式和手动方式。其中自动方式是由NSObject提供的一个默认实现,通常情况下,如果你自定义了一个类是从NSObject继承而来,那么该类就已经具有了KVO的自动通知功能,而且
阅读全文
摘要:文章分A,B,C,D 4个部分。A) iOS Application Security下面介绍iOS应用安全,如何分析和动态修改app。1)iOS Application security Part 1 – Setting up a mobile pentesting platformPart1介绍如何在越狱的设备上搭建用来测试iOS安全的环境。2)iOS Application security Part 2 – Getting class information of IOS appsPart2介绍如何利用class-dump-z 和 Clutch 来dump类信息,利用这些信息,可以理解
阅读全文
摘要:iOS中的UITableView,在上面滑动时,可以出现一个“删除”按钮,来进行删除操作。但是,有些时候,由于实现方法不对,滑动时,这个按钮却显示不出来。分析了一下原因,大概以有下几个要素:1.UITableViewDelegate中的下面一个方法:// Allows customization of the editingStyle for a particular cell located at ‘indexPath’. If not implemented, all editable cells will have UITableViewCellEditingStyleDelete se
阅读全文
摘要://检查银行卡是否合法//Luhn算法+(BOOL)isValidCardNumber:(NSString *)cardNumber{ NSString *digitsOnly = [Tool getDigitsOnly:cardNumber]; int sum = 0; int digit = 0; int addend = 0; BOOL timesTwo = false; for (int i = digitsOnly.length - 1; i >= 0; i--) { digit = [digitsOnly charact...
阅读全文
摘要:NSTimer与NSRunLoop的关系分析发表于2013 年 6 月 27 日由bluev |6 次浏览最近关于NSTimer和NSRunLoop的关系,做了一个小试验。代码地址:https://github.com/TianLibin/timerRunLoopTest.git代码运行效果如下图所示:本示例演示了四个定时器的效果以及界面操作对它们的影响。前两个定时器,是在子线程中启动的:- (void)subThread1{ @autoreleasepool { self.subThreadTimer1 = [NSTimer scheduledTimerWithTimeI...
阅读全文
摘要:一、HomeBrew相关:先对HomeBrew做一个简单的介绍吧,之前了解的也不多。主要就是用于安装Unix的工具包。注意:HomeBrew依赖于Xcode的 Command Line Tool.官方的链接:http://mxcl.github.io/homebrew/Homebrew作为OS X上强大的包管理器,为系统软件提供了非常方便的安装方式,独特式的解决了包的依赖问题,并不再需要烦人的sudo,一键式编译,无参数困扰,真的,你值得拥有。安装Homebrew依赖于XCode,首先需要安装,lion后XCode也是免费的了,直接到App store下载。同时Homebrew也依赖ruby,
阅读全文
摘要:方法一:1.xcode有自带的symbolicatecrash,可以将.crash文件中的16进制地址转换成可读的函数地址。symbolicatecrash位于:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash(Xcode4.5)可以将symbolicatecrash拷贝到便于操作的目录。如:将其拷贝到Deskto
阅读全文
摘要:注意:crash_log一定要和打包时的archive对应上;方法1)在Orgnizer里找到某一个archive,即:/Users/handywang/Library/Developer/Xcode/Archives/2012-04-20/sohunews\ 4-20-12\ 3.07\ PM.xcarchive找到/Users/handywang/Library/Developer/Xcode/Archives/2012-04-20/sohunews\ 4-20-12\ 3.07\ PM.xcarchive/dSYMs/sohunews.app.dSYM/Contents/Resource
阅读全文
摘要:bundle字段这些字段名都是XML中的名称,在xcode的属性编辑器中,名字并不相同bundle目录中的属性列表详细描述了有关该bundle的信息。Finder和一些系统API在一些情况下会使用这些信息。bundle支持下列字段类型:Core Foundation字段–描述了bundle的综合属性Cocoa特定的字段–描述了和Cocoa有关的bundle的属性Finder特定的字段–描述了和Finder与文件系统有关的信息启动服务字段–描述了和启动服务有关的信息标准Bundle字段Mac OS X 为描述bundle的信息提供了一组核心字段。集成开发环境会赋予这些字段缺省值。表A-1列出了这
阅读全文
摘要:在iOS中下面三个控件,自身就有复制-粘贴的功能:1、UITextView2、UITextField3、UIWebViewUIKit framework提供了几个类和协议方便我们在自己的应用程序中实现剪贴板的功能。1、UIPasteboard:我们可以向其中写入数据,也可以读取数据2、UIMenuController:显示一个快捷菜单,用来展示复制、剪贴、粘贴等选择的项。3、UIResponder中的 canPerformAction:withSender:用于控制哪些命令显示在快捷菜单中。4、当快捷菜单上的命令点击的时候,UIResponderStandardEditActions将会被调用
阅读全文
摘要:将所有的UITableView保存为图片,因为UITableView只能保存显示当前,所以,就单个保存后,合并为一张图片代码如下:01-(IBAction)savePic:(id)sender02 03{04 05 //支持retian高分辨率06 07 UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0.0);08 09 float curH = mTableView.contentSize.height;10 11 UIImageView *allView = [[UIImageVi...
阅读全文
摘要:#!/bin/shecho"随意删除@2x图片可能会引起错误因为ios工程会更加前缀和分辨率自己找到@2x的图片所以删除@2x图片时要慎重"read-n1 -p"【Y】查阅如何确认@2x是使用【N】直接进行图片检索"answercase$answerin"Y"|"y")open -a Safari"http://www.cnblogs.com/yingkong1987/archive/2013/06/25/3154344.html"echo -n"按任意键开始程序";read
阅读全文
摘要:有部分图片是名称一样存放在模块的image文件下与公共的image 文件重复有的是图片名称一样 文件不一样xib 中引用的到请用以下命令逐一查看排除grep -i -r --include=*.xib --include=*.m "line" ./ | grep "line.png"
阅读全文
摘要:如果你是一名开发者,还在为偶尔改一个坐标或者颜色值 就要重新build 好久,然后如果层次深 还要一步步进去看效果么?下面 为大家介绍一个很好的开源库 DYCI 他的github地址,首先下载到本地1.然后 去执行 解压后 目测层次 如下2.进去Install 目录下 我们准备安装 运行其shell 脚本因为我之前安装成功,所以会有 skipped 字样,你如果全新安装 便只有成功 字样3.检查安装完后 xcode 是否有此快捷键,如果没有,重启xcode,如果在没有,在关闭xcode情况下 重复2操作 ,(本人安装过程中出现一直没出现插件安装成功,重复2-3次才成功,耐心试几次,总可以的)4
阅读全文
摘要:对于使用代码来写UI的同志,使用DCIntrospect来查看元素信息调整布局,再也不用凭眼睛来估了,先来看看截图DCIntrospect是github上的开源项目:下载源码大概介绍下用法:DCIntrospect拖到项目中,添加 QuartzCore framework在方法didFinishLaunchingWithOptions中添加下面的代码:// always call after makeKeyAndDisplay.#if TARGET_IPHONE_SIMULATOR[[DCIntrospect sharedIntrospector] start];#endif只支持在模拟器上跑
阅读全文
摘要:概述我将分四步来带大家研究研究程序的并发计算。第一步是基本的串行程序,然后使用GCD把它并行计算化。如果你想顺着步骤来尝试这些程序的话,可以下载源码。注意,别运行imagegcd2.m,这是个反面教材。。 imagegcd.zip (8.4 KB, 87 次)原始程序我们的程序只是简单地遍历~/Pictures然后生成缩略图。这个程序是个命令行程序,没有图形界面(尽管是使用Cocoa开发库的),主函数如下: int main(int argc, char **argv) { NSAutoreleasePool *outerPool = [NSAutoreleasePool new]; NSAp
阅读全文
摘要:其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入代码如下:@implementation DWAppDelegate{ dispatch_queue_t _serialQueue; UINavigationController *_navController;}- (dispatch_queue_t)serialQueue{ if (!_serialQueue) { _serialQueue = dispatch_queue_create("serialQueue",
阅读全文
摘要:何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型?下面是GCD 10.6.0版本支持的事件:Mach port send right state changes.Mach port receive right state changes.External process state change.File descriptor ready for read.File descriptor ready f
阅读全文
摘要:概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)。有两种途径来通过GCD“榨取”多核心系统的性能:将单一任务或者一组相关任务并发至全局队列中运算;将多个不相关的任务或者关联不紧密的任务并发至用户队列中运算;全局队列设想下面的循环: for(id obj i
阅读全文
摘要:什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GCD还提供高度集成的事件控制系统。可以设置句柄来响应文件描述符、mach ports(Mach port 用于 OS X上的进程间通讯)、进程、计时器、信号、用户生成事件。这些句柄通过GCD来并发执行。GCD的API很
阅读全文

浙公网安备 33010602011771号