
iPhone
NewJerryj
这个作者很懒,什么都没留下…
展开
-
iPhone程序的内存泄漏问题
1 使用xcode自带的Clang static analyzer 检查内存泄漏 build -> build and analyze (Cmd + shift + A) 这样编译和分析, 不过不一定所提示的都是错误和内存泄漏, 必须仔细审查2 可以在工程设置中,开启 Run Static Analyzer原创 2012-05-25 17:37:01 · 954 阅读 · 0 评论 -
NSRunLoop 概述和原理
原帖地址:http://www.cocoachina.com/newbie/basic/2012/0703/4414.html 感谢原作者1.什么是NSRunLoop?我们会经常看到这样的代码:- (IBAction)start:(id)sender{pageStillLoading = YES;[NSThread det转载 2012-07-03 17:44:01 · 1132 阅读 · 0 评论 -
Objective-C 语法之集合对象
集合对象的关键字是NSSet与NSMutableSet。前者是不可变集合,后者是可变集合,Objective-C语言中大部分数据结构都存在可变与不可变两种数据。这里的集合很像Java语言与C语言中的Set,用法基本一样。但是在Objective-C语言中同一个集合可以储存不同对象的数据。下面分享一个例子就很清楚的看出。 1. 创建不可变集合对象 [NSNumber转载 2012-06-20 20:12:49 · 1029 阅读 · 0 评论 -
MBProgressHUD 的用法
在项目中,经常需要显示图片或者其他内容的下载进度,MBProgressHUD是一个优秀开源的进度显示控件, 方便简单,下面介绍它的使用方法 // 初始化 MBProgressHUD *loadingView = [[[MBProgressHUD alloc]initWithView:self.view]autorelease];原创 2012-06-27 18:20:39 · 4496 阅读 · 0 评论 -
ASIHTTPRequest的使用方法
ASIHTTPRequest 作为一款优秀的开源库,包括了普通的http请求,带cache功能,还支持请求队列,数据流,以及数据的压缩。 本文介绍 ASIHTTPRequest的最常用也是最简单的一部分使用方法, 使用它来下载一张图片 ASIHTTPRequest *httpRequest = [ASIHTTPRequest requestWithURL:url]; /原创 2012-06-28 19:09:18 · 2638 阅读 · 0 评论 -
自定义修改iPhone相机界面
很多情况下,我们需要自定义系统的相机拍照界面, 以下示例代码可以实现定制相机界面, 具体UI自己可以加入- (void) setup: (UIView *) aView{ //获取相机界面的view self.plcameraview = [aView subviewWithClass:NSClassFromString(@"PLCameraView")]; if (!pl原创 2012-06-19 10:28:19 · 15819 阅读 · 3 评论 -
iPhone 获取指定格式的时间和日期
1. 显示当前的年月日+时间 NSDate* date = [NSDate date]; NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"]; //指定格式原创 2012-06-29 19:17:54 · 1730 阅读 · 0 评论 -
Objective-C 内存管理精髓(转载)
文/OSChina之前写过类似的文章,这篇以做总结,希望能帮助刚上船的兄弟。_iPhone系统中的Objective-C的内存管理机制是比较灵活的,即可以拿来像C/C++一样用,也可以加个AutoreleasePool让它升级为半自动化的内存管理语言。当然,也不能拿JAVA虚拟机中的全自动化GC来比?引用计数是实例对象的内存回收唯一参考引用计数(retainCoun转载 2012-08-02 09:25:12 · 766 阅读 · 0 评论 -
UIButton小结
1.创建 + buttonWithType: // 创建并返回一个特定风格的按钮 2.设置标题 buttonType property titleLabel property // 显示按钮当前标题的视图(只读).虽然它是只读的,但是它的属性是可读写的.它的属性在按钮还没有显示之前就有返回值.系统按钮这些值为nil reversesTitleShadowW转载 2012-08-05 18:38:15 · 671 阅读 · 0 评论 -
iPhone获取字符串高度和宽度 以及UILabel 的换行显示
通常我们使用UILabel只是显示较短的字符串,下面是一种获取字符串的换行高度,显示 代码如下所示: NSString* str = @"test testImplement viewDidLoad to do additional setup after loading the view, typically from a nib"; //CGSize labelSize =原创 2012-06-11 10:11:33 · 5705 阅读 · 1 评论 -
ios的Framework简介
Framework 简介Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码和资源。framework 在概念上有点像 Window 下的库,但是比库更加强大,通过 framework 我们可以共享所有形式的资源,如动态共享库,nib 文件,图像字符资源以及文档等。系统会在需要的时候将 framework 载入内存中,多个应用程序可以同时使用同一个 framew转载 2012-06-20 20:28:21 · 15692 阅读 · 0 评论 -
ios工程中使用ARC技术
自动计数(ARC)是一个编译期间工作的能够帮你管理内存的技术,通过它,程序人员可以不需要在内存的retain,释放等方面花费精力。 ARC在编译期间为每个Objective-C指针变量添加合适的retain, release, autorelease等函数,保存每个变量的生存周期控制在合理的范围内,以期实现代码上的自动内存管理。 ios4版本及以上才能支持A原创 2012-06-18 11:19:03 · 1675 阅读 · 0 评论 -
使用ios系统自带的MapKit framework进行定位
这样使用的是谷歌的地图和LBS信息, 估计后续苹果会自己做地图服务了 CLLocationCoordinate2D coordinate; coordinate.latitude = gpsInfo.lat; coordinate.longitude = gpsInfo.log; MKReverseGeocoder * reverseGeocoder = [[MK原创 2012-05-25 18:41:19 · 3625 阅读 · 0 评论 -
iphone开发-SQLite数据库使用
首先需要在项目中引用Sqlite 3 的开发包,下面是在iPhone SDK 3.0下的目录:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib/libsqlite3.0.dylib到这里你需要事先用命令来创建Sqlite 3 的数据库文件,并在其中创建自己的表等等,然后作为资源转载 2012-06-11 16:43:55 · 853 阅读 · 0 评论 -
sqlite 操作简明教程
SQLite顾名思议是以 SQL为基础的数据库软件,SQL是一套强大的数据库语言,主要概念是由「数据库」、「资料表」(table)、「查询指令」(queries)等单元组 成的「关联性数据库」(进一步的概念可参考网络上各种关于SQL及关联性数据库的文件)。因为SQL的查询功能强大,语法一致而入门容易,因此成为现今主 流数据库的标准语言(微软、Oracle等大厂的数据库软件都提供SQL语法的查询及操转载 2012-06-11 16:45:19 · 837 阅读 · 0 评论 -
ios6的新特性
今天凌晨,苹果发布了新的ios6系统, 其中有不少更新,以下整理列举其十大更新: 1. 对中国用户更加友好 改进了输入法,加入了微博等国人熟悉的网络应用。 2. 支持中文Siri 升级之后,Siri语音功能将会更加丰富,也将会更加人性化,通过提问,Siri将会为为用户呈现更加丰富以及详细的内容。升级后的Siri将可实现与第 三方应用无缝衔原创 2012-06-12 09:35:56 · 797 阅读 · 0 评论 -
iPhone应用程序的沙盒(SandBox)结构
在模拟器中运行iOS程序,都会为该程序创建一个沙盒(SandBox)。首先声明,我用的系统是Max OS X 10.7.3,编译器是Xcode 4.3.2。想要找到沙盒目录,先运行Finder,然后在Finder的菜单栏找到前往—前往文件夹…,在打开的窗口输入/Users/UserName/Library/Application Support/iPhone Simulator/其中,转载 2012-06-12 09:56:05 · 1838 阅读 · 0 评论 -
ios中的几种多线程实现
iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:1, Thread;2, Cocoa operations;3, Grand Central Dispatch (GCD) (iOS4 才开始支持)下面简要说明这三种不同范式:Thread 是这三种范式里面相对轻转载 2012-06-13 19:31:12 · 10477 阅读 · 2 评论 -
xcode工程设置个人和公司名称的版权信息
1. 在地址簿中设置个人的名称和公司名称等信息, 当新建工程后, xcode会读取这个信息,展示在代码文件的头部信息2. 如果在其他人创建的工程上新增代码文件,将还是读取创建时的版权信息。原创 2012-05-24 11:31:30 · 2601 阅读 · 1 评论 -
在iphone指定目录写文件log
NSString * hisPath = [[NSPathEx DocPath] stringByAppendingFormat:@"/Log.txt"]; NSString* strHistory = [NSString stringWithContentsOfFile:hisPath encoding:NSUTF8StringEncoding error:nil]; if (str原创 2012-05-24 20:32:09 · 1201 阅读 · 0 评论 -
UITableView的使用规则和技巧等
1 在tableview的系统回调之外使用删除某个cell //先获取indexpath NSIndexPath* indexPath = [NSIndexPath indexPathForRow:row inSection:0]; [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]原创 2012-05-23 19:26:29 · 851 阅读 · 0 评论 -
ios工程中Info.plist的键值和属性
CFBundleDisplayName (程序包显示名)显示在应用程序图标下方的名称。这个值应该本地化为所有支持的语言。CFBundleIdentifier (程序包标识)这是由您提供的标识字符串,用于在系统中标识您的应用程序。这个字符串必须是一个统一的类型标识符(UTI),仅包含字母数字(A-Z、a-z、0-9),连字符(-),和句号(.);且应该使用反向DNS格式。举例来说原创 2012-05-25 09:19:39 · 2400 阅读 · 0 评论 -
Xcode4.2常用操作
1.配置高亮方案:Fonts & Colors2.键盘快捷键:Key Bindings3.代码缩进:Re-indent selection。(快捷键CTRL+I)4.代码自动完成:Table(代码上屏),Esc(打开自动完成列表)5.command+[ (代码左移),花+] (代码右移)6.双击某个“括号匹配”的某个分隔符(如 { } ( ) [ ] 等),Xc转载 2012-08-25 22:13:27 · 959 阅读 · 1 评论 -
对 iOS 多任务的误解 [多任务原理]
转载:http://blog.youkuaiyun.com/kmyhy/article/details/7940704原文:http://www.excitebuzz.com/misconceptions-about-ios-multitasking-how-multitasking-works/6592.html 如今,多任务这个有趣特性已经成功集成在设备中,我们如今使用的智能手机完转载 2012-09-15 12:03:10 · 1117 阅读 · 0 评论 -
[iphone]使用(RegexKitLite)实现正则表达式 [转]
1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中。2.工程中添加libicucore.dylib frameworks。3.现在所有的nsstring对象就可以调用RegexKitLite中的方法了。NSString *email = @”kkk@aaa.com”;[email isMatched转载 2012-11-06 16:21:05 · 958 阅读 · 0 评论 -
ios常见的crash信号类型
SIGSEGV (Segmentation fault)访问了没有权限的内存地址(系统内存地址等)Access to an invalid memory address. The address exist, but your program does not have access to it.SIGBUS (Bus error)访问了无效的内存地址Access to原创 2012-12-28 17:04:40 · 2605 阅读 · 0 评论 -
非开发人员获取ios crashlog方法
方法1:用工具直接获取 iPhone 设备上 var/mobile/Library/Logs/CrashReporter 中的 Crash 报告文件。(Mac 下用 PhoneView/iTools/iExplorer,Windows下用、iFunBox、iTools、91助手等)。方法2:如果 iTunes 同步,则同步后Crash日志会同步到电脑上,把以下目录中的Crash提取打原创 2012-12-29 17:37:20 · 3903 阅读 · 0 评论 -
OC的KVO模式漫谈
Key-Value Observing (简写为KVO):当指定的对象的属性被修改了,允许对象接受到通知的机制。每次指定的被观察对象的属性被修改的时候,KVO都会自动的去通知相应的观察者。 因为KVO模式本身获得了框架级别的支持,所以开发人员不需要自己设计观察者模式,不用添加额外的代码,使用方便。KVO模式的工作原理: 如果A对象希望在B对象的一个特定属性改变时原创 2013-01-25 09:03:56 · 2381 阅读 · 0 评论 -
一些有用的device信息,可能有些是私有API
原文地址:http://hi.baidu.com/marktian/item/e0f555ee0e08b2225a2d64e01. 手机号码:这个也是undocument apiNSString* phoneNumber = CTSettingCopyMyPhoneNumber();2. 总磁盘大小:NSDictionary *fattrib转载 2013-03-08 15:18:41 · 2871 阅读 · 0 评论 -
在非ARC工程中加入ARC代码文件的方法
在非ARC工程里面必须配置编译选项 Target->Build Phases->Compile Sources 对应的ARC代码文件添加 -fobjc-arc 编译选项原创 2013-03-12 15:23:52 · 3156 阅读 · 0 评论 -
一些名博和开源工程收藏
1. 播放器,ASIHttp等https://github.com/yuyi012http://www.cocoachina.com/downloads/code/2012/0604/4320.html2. 雪花,火焰,烟花等特效https://github.com/lichtschlag/Dazzle3. 一种下拉刷新的实现http://www.c原创 2012-06-06 17:00:19 · 1721 阅读 · 0 评论 -
解决ios6系统输入法bug的一种方法
可能大家经常遇到在ios6上,在app中切换到系统中文输入法,锁屏,再解锁,造成app crash , 如下图crash log: 这是属于ios6系统级别的bug. 一种有效的解决办法:在AppDelegate 的WillEnterBackGround中,先隐藏键盘 [[[UIApplication sharedApplication原创 2013-04-12 10:39:00 · 3177 阅读 · 0 评论 -
解决iPhone模拟器无法启动的方法
有时候由于工程的原因,造成app无法和之前的版本兼容,iPhone模拟器无法启动应用。昨天摸索发现一个解决办法: 模拟器——>还原内容和设置, 等待还原完成之后,再次编译运行,即可启动app了。原创 2012-12-14 08:57:39 · 2599 阅读 · 1 评论 -
使用C的库函数获取当前本地时间
1. tm结构体struct tm {inttm_sec; /* seconds after the minute [0-60] */int tm_min;/* minutes after the hour [0-59] */int tm_hour;/* hours since midnight [0-23] */int tm_mday;/* day of th原创 2012-12-12 15:48:28 · 1518 阅读 · 0 评论 -
ios6 SDK的新特性
每次ios大版本的更新,都会带来一些新的东西,对开发者来说,有利有弊。 好处是,新增了很多新的属性,控件和api,开发者权限更大了,可以轻松实现更多的功能。弊端在于,可能废除了一些旧的api接口,需要做更多的适配和兼容。通过自己开发过程中的一些经验,查阅ios6 SDK以及参考网上一些文档。 总结了下面这些关于ios6系统的新特性,方便大家在后续开发过程中进行对比参考。 一 关于内原创 2012-12-08 10:10:28 · 4552 阅读 · 0 评论 -
iOS多线程编程概要总结
1. 创建线程的平均开销: 内存堆栈: 主线程—— 1M , 子线程——512K 时间: 基本可以忽略不计2. 创建线程的多种方法: NSThread, POSIX(基于C语言支持的API), NSObject的performSelector3. 在原创 2012-11-08 08:34:32 · 3124 阅读 · 0 评论 -
NSDateFormatter格式详细列表一览
感谢原作者:http://www.cnblogs.com/xinus/archive/2012/10/29/NSDateFormatter_samples.html前言:iOS开发中NSDateFormatter是一个很常用的类,用于格式化NSDate对象,支持本地化的信息。与时间相关的功能还可能会用到NSDateComponents类和NSCalendar类等。本文主要列出N转载 2012-11-09 10:00:19 · 2415 阅读 · 0 评论 -
iOS系统的沙盒机制
出于安全考虑, iOS将每个应用程序限制在属于自己的特定文件内,其他app没有权限访问到此文件夹, 这就是app的沙盒。 iOS的应用程序常用的文件目录: /AppName.app 应用程序本身包目录 /Documents/ 应用程序的重要数据文件和用户数据文件等都放在这个目录, iTunes进行备份和恢复时,这个目录会被复制。 /原创 2012-11-10 10:54:25 · 1554 阅读 · 0 评论 -
关于iPhone的Retina屏幕
Retina屏幕是苹果公司推出的一种具备超高像素密度的液晶屏,它可以将960×640的分辨率压缩到一个3.5英寸的显示屏内。也就是说,该屏幕的像素密度达到326像素/英寸, 显示效果极佳, 在开发过程中,为了保证兼容旧的屏幕,可能需要判断是否为Retina屏幕。1. 获取当前手机是否是Retina屏幕([UIScreen instancesRespondToSelector原创 2012-05-25 11:08:42 · 1461 阅读 · 0 评论 -
ios UIKit的图形上下文
1. 在调用drawRect之前,视图对象会自动配置其描画环境,使得可以立即进行绘制。 2. UIView会为当前描画环境创建一个图形上下文(对应于CGContextRef封装类型)。该图形上下文,包括执行描画命令所需要的信息,定义各种基本的描画属性,比如描画使用的颜色,裁剪区域,线宽度,等等。 3. 在Quartz中,捕捉屏幕的描画命令,用于创建图像或者原创 2012-11-14 09:41:10 · 4127 阅读 · 0 评论