
iphone基础开发
文章平均质量分 50
linwwwei
这个作者很懒,什么都没留下…
展开
-
GCD和块对象介绍
GCD的核心,是一些全局并发队列,它们可以被用dispatch_get_global_queue函数访问:dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0);方法的第一个参数是调度队列的优先级。第二个参数保留,当前必须设0。队列的优先...原创 2011-12-12 12:26:56 · 129 阅读 · 0 评论 -
CFDate的几个函数
CFGregorianDate CFAbsoluteTimeGetGregorianDate(CFAbsoluteTime at, CFTimeZoneRef tz);//得到当前时间SInt32 CFAbsoluteTimeGetDayOfWeek(CFAbsoluteTime at, CFTimeZoneRef tz);得到当前时间是星期几SInt32 CFAbsoluteTimeGe...2011-11-29 14:45:05 · 171 阅读 · 0 评论 -
UIApplication深入研究(转载)
UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实例。回想一下我在前面的文章“main函数研究”的文章中提到的main函数的代码,可以看出,在程序开始运行的时候,UIApplicationMain函数是程序进入点,这个函数做了很多工作,其中一个重要的工作就是创建一个UIApplica...原创 2011-11-29 17:33:48 · 165 阅读 · 0 评论 -
深入浅出 iOS 之多线程 NSThread(转载)
iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:1, Thread;2, Cocoa operations;3, Grand Central Dispatch (GCD) (iOS4 才开始支持)下面简要说明这三种不同范式:Thread 是这三种范式里面相对轻...原创 2012-02-03 10:49:41 · 84 阅读 · 0 评论 -
平时积累
NSStirng去除空格[someStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 替换NSString中的回车 空格 或者 \nstringElementValue = [stringElementValue stringByTrimmingCharacter...原创 2012-02-03 11:26:55 · 95 阅读 · 0 评论 -
在数字键盘上添加button
在数字键盘上添加button://定义一个消息中心[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //addObserver:注册一个观察员 name:...原创 2012-02-03 15:39:05 · 111 阅读 · 0 评论 -
怎样为Grouped UITableView增加一个好看的背景颜色
UIView *backgroundView = [[UIView alloc] initWithFrame: window.frame]; backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TableViewBackground.png"]]; [window a...原创 2011-12-01 15:41:54 · 103 阅读 · 0 评论 -
dispatch_queue_t初学(转载)
1. GCD 使用后不用程序去管理线程的开闭,GCD会在系统层面上去动态检测系统状态,开闭线程2. Dispatch Queues 单行 并行 2种 FIFO 把task依次放入单行queue可以实现顺序执行3. Operation Queues 可以指定任务之间的优先级 task之间的先后依赖关系4. __block变量是可以改变的 共享的 dispatch_...原创 2011-12-07 11:18:30 · 109 阅读 · 0 评论 -
iOS中的3种多线程
NSThreadNSOperationGCD原创 2011-12-07 11:20:40 · 91 阅读 · 0 评论 -
ios中的block
Ios4已经直接支持blocks,很有必要学习一下。在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline的,并且它对局部变量是只读的。Blocks的定义: int (^Multiply)(int, int...原创 2011-12-07 11:21:47 · 89 阅读 · 0 评论 -
计算两经纬度之间的位置
#define PI 3.1415926double LantitudeLongitudeDist(double lon1,double lat1, double lon2,double lat2){ double er = 6378137; // 6378700.0f; //ave. radius = 6371.315 (someone said more a...原创 2011-11-21 19:36:24 · 164 阅读 · 0 评论 -
UILocalNotification的理解
Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notification种类,本地和远程。本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地Notification对象加入到系统Notification管理机制...原创 2011-11-17 16:32:33 · 97 阅读 · 0 评论 -
UINAV,UITOOLBAR,UISEARCHBAR,UITABBAR修改背景图片(转载)
程序代码: 在程序的任何一个 .m文件 后面加上下面代码即可 记住 要在 @end 的后面加上;@implementation UINavigationBar (CustomImage2) - (void)drawRect:(CGRect)rect { UIImage *image = [UIImage imageNamed: @"bar.png"]; ...原创 2011-11-17 14:25:48 · 82 阅读 · 0 评论 -
iphone 地图定位
CLLocationCoordinate2D loc = [newLocation coordinate]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%...2011-04-11 18:52:34 · 101 阅读 · 0 评论 -
respondsToSelector
-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例-(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例-(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个selector的对象里传递)+(BOOL) instancesRespo...原创 2011-12-14 11:07:19 · 108 阅读 · 0 评论 -
多线程操作数据库 (CoreData)
1: 主线程修改了数据库的某一条记录,但是子线程没有发生变化,反过来一样的问题。这种情况一般是发生在app有多个NSManagedObjectContext,两个线程分别对其进行了读写操作。2: 有时候程序会莫名其妙的crash掉,这个有很多原因: a: 有时候是因为两个线程同时读写数据库中的同一条记录。 b: 有时候根本找不到是哪里的原因。...原创 2011-12-14 11:25:13 · 146 阅读 · 0 评论 -
UISearchBar的背景图片
在SDK4.2以上的版本中,为UISearchBar增加了一个新的属性,叫做backgroundView,这样我就能够很容易的为UISearchBar添加背景颜色。但是SDK4.1以及更老的版本中没有这个属性,这样就没法保证界面的整体效果。最近我发现了一个比较好,也比较使用的小技巧,可以轻松搞定这个问题。就是将UISearchBar的背景移除,然后在UISearchBar的下面放上一张我们所需要的...原创 2011-11-07 15:02:22 · 125 阅读 · 0 评论 -
如何判断touch移动或离开视图
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch=[touches anyObject]; if (![self pointInside:[touch locationInView:self] withEvent:nil]) { NSLog(@...原创 2011-11-15 16:09:54 · 202 阅读 · 0 评论 -
MKMapView的学习
1.MKMapView的显示(1)创建MKMapViewCGRect rect = CGRectMake(0, 20, 320, 460);MKMapView *mapView = [[MKMapView alloc] initWithFrame:rect];(2)设定经纬度CLLocationCoordinate2D theCoordinate;theCoordinate...原创 2011-11-15 17:16:10 · 74 阅读 · 0 评论 -
获得用户电话号码。。(不知道怎么无效) 成功者请回复
+ (NSString*)getPhoneNumber{ NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"]; NSLog(@"Phone Number: %@", num); return num...原创 2011-11-15 17:39:20 · 134 阅读 · 0 评论 -
使UIWebView响应touch事件
UIWebView是不响应touch事件的,这点让人很头疼。但是可以使用js解决这个问题,话不多说,代码如下:在load的HTML里添加:NSString *touchString = @"document.ontouchstart=function(){document.location=\"myweb:touch:start\";};document.ontouchend=fu...原创 2011-11-15 17:56:32 · 231 阅读 · 0 评论 -
在UINavigationController的导航栏中添加UISegmentedControl
UISegmentedControl *segmentedControl=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 200.0f, 30.0f) ]; [segmentedControl insertSegmentWithTitle:@"Food to eat" atIndex:0 animate...原创 2011-11-17 14:24:12 · 157 阅读 · 0 评论 -
介绍Apple GNU C/C++,objective-C/C++中的新特性——Blocks
现在外面流行一个词,叫“多核”,呵呵。由于现在硬件工艺达到了饱和,所以很多处理器制造商想从多核来进一步发掘处理器的性能。而Apple现在也引领了时尚,对XCode 3.2中的GCC 4.2扩充了Blocks新的语法特性,使其能够有助于多核应用的开发。其中,Apple在Snow Leopard中所用到的Grand Central Dispatch(G_C_D)就是基于Blocks实现的。...原创 2011-12-07 11:37:53 · 109 阅读 · 0 评论 -
CoreData初识
Core Data不是一个关系型数据库,也不是关系型数据库管理系统(RDBMS)。Core Data 为数据变更管理、对象存储、对象读取恢复的功能提供了支持。 它可以使用SQLite作为持久化存储的类型。 它本身并不是一个数据库(这点很重要,比如,你可以使用Core Data来记录数据变更,管理数据,但并不能用它向文件内存储数据)。CoreData是对sqlite数据库的一个封装.这个...原创 2011-12-07 16:48:15 · 119 阅读 · 0 评论 -
iphone开发资源汇总(转载)
如何用Facebook graphic api上传视频: http://developers.facebook.com/blog/post/532/Keychain保存数据封装: https://github.com/carlbrown/PDKeychainBindingsController对焦功能的实现: http://www.clingmarks.com/?p=612...原创 2012-02-15 17:17:01 · 114 阅读 · 0 评论 -
iOS静态库和动态库
一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?.dylib和.framework五...原创 2014-12-24 17:55:53 · 81 阅读 · 0 评论 -
代码重构的理解(持续更新)
代码重构的理解和思考。1:何时进行重构?当重复出现的时候,你应该考虑重构了2:粘贴复制的代码越少,你的系统越稳定原创 2015-01-13 17:27:41 · 232 阅读 · 0 评论 -
Objective-C的消息传递机制[转]
一直想写一篇类似的。直接转载了http://www.cnblogs.com/bandy/archive/2012/03/28/2420809.html原创 2014-07-31 20:34:58 · 88 阅读 · 0 评论 -
KVO&KVC的再次认知
KVO模型中,有两种通知观察者的方式,自动通知和手动通知。顾名思义,自动通知由cocoa在属性值变化时自动通知观察者,而手动通知需要在值变化时调用 willChangeValueForKey:和didChangeValueForKey: 方法通知调用者。为求简便,我们一般使用自动通知。例如:[MyCtrol addObserver:self forKeyPath:@"value" option...原创 2015-02-02 16:01:38 · 133 阅读 · 0 评论 -
响应者链及相关机制总结
转载:http://www.cocoachina.com/ios/20160630/16868.html 实际开发中常见的相关问题在实际开发中,经常会遇到视图没有响应的情况,特别是新手会经常搞不清楚状况。一下是视图没有响应的几个情况:1.userInteractionEnabled=NO;2.hidden=YES;3.alpha=0~0.01;4.没有实现touc...原创 2016-06-30 14:25:25 · 177 阅读 · 0 评论 -
UIWebView清空缓存
- (void)clearAllUIWebViewData { // Clear the webview cache... [[NSURLCache sharedURLCache] removeAllCachedResponses]; [self removeApplicationLibraryDirectoryWithDirectory:@"Caches"]; ...原创 2016-07-25 10:03:32 · 277 阅读 · 0 评论 -
autolayout心得
一:实现方案在以前就已经确定了下面几个点: 1 使用autoLayout进行适配 2 引入masonry第三方库,提高适配时的开发效率 3 不需要使用autoLayout就能进行适配 4 动态计算显示位置的,可以根据屏幕宽高或父视图或兄弟视图的位置进行动态布局。 二:开发总结根据实际开发效果来看,总结经验如下:1 视图层级较少,页面布局简单的...原创 2014-10-28 13:30:12 · 135 阅读 · 0 评论 -
根据dsym解析crash_log
1:拷贝symbolicatecrash到/bin目录下sudo cp /Applications/Xcode6.1.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /bin2:设置DEVELOPER_DIR目录export DEVELOPER...原创 2014-12-01 14:15:01 · 214 阅读 · 0 评论 -
静态库编译心得
我们编译静态库时一般会生成模拟器,真机两个包的.a文件这二个库一个是用于真机运行的一个是用于模拟器运行的.其实我们可以利用lipo将这二个文件打包成一个通用的a文件将/Users/user/Library/Developer/Xcode/DerivedData/UITab-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products替换成你的路径。 将/U...原创 2014-12-16 11:16:31 · 101 阅读 · 0 评论 -
svg图片在ios上的使用
1:从UI设计师那里得到的是每个svg图通过网站icomoon.io这个网站生成ttf格式的图片步骤:a.点击IcoMoon APP按钮 b.点击Import Icons(这里就是UI设计的svg图片) c.选中需要生成的图片,点击右下角的Generate Font按钮 d.全部沿用默认设置,点击右下角Download按钮下载下载包中就有我们包含的t...原创 2014-12-23 15:22:12 · 819 阅读 · 0 评论 -
svg图片在ios上的使用
1:从UI设计师那里得到的是每个svg图通过网站icomoon.io这个网站生成ttf格式的图片步骤:a.点击IcoMoon APP按钮 b.点击Import Icons(这里就是UI设计的svg图片) c.选中需要生成的图片,点击右下角的Generate Font按钮 d.全部沿用默认设置,点击右下角Download按钮下载下载包中就有我们包含的t...原创 2014-12-23 15:22:05 · 1721 阅读 · 0 评论 -
Xcode设置项之Architectures和Valid Architectures
本文所讲的内容都是围绕iPhone的CPU指令集,现在先说说不同型号的iPhone都使用的是什么指令集:Xcode中关于生成二进制包指令集相关的设置项有以下三个:iPhone指令集本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击这里),现在先说说不同型号的iPhone都使用的是什么指令集ARMv8/ARM64 = iPhone 5s, iPad Air,...原创 2014-12-22 10:42:36 · 103 阅读 · 0 评论 -
NSString (NSStringPathExtensions)
+ (NSString *)pathWithComponents(NSArray *)components根据components中的元素来构建路径.- (NSArray *)pathComponents解析路径,返回构成路径的各个部分.- (NSString *)lastPathComponent提取路径中的最后一个组成部分- (NSString *)pathExtens...原创 2012-02-15 18:29:07 · 181 阅读 · 0 评论 -
使用core text输出文本
在ios中,进行文本样式设计目前有2种方式: UIWebView ,core text下面我将通过一个例子来讲述一下如何使用coretext来进行文本样式的添加。本文章参考:http://web.archiveorange.com/archive/v/nagQXJDPDGVNz9LFLmSKhttp://www.cocoanetics.com/2011/01/befriending...原创 2012-02-16 15:08:38 · 126 阅读 · 0 评论 -
iOS应用程序状态切换相关(生命周期)
一、iOS应用程序状态机一共有五种状态:1. Not running:应用还没有启动,或者应用正在运行但是途中被系统停止。2. Inactive:当前应用正在前台运行,但是并不接收事件(当前或许正在执行其它代码)。一般每当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。唯一在此状态停留时间比较长的情况是:当用户锁屏时,或者系统提示用户去响应某些(诸如电话来电、有未读短信等)事...原创 2012-03-01 15:12:47 · 141 阅读 · 0 评论