IOS
xuanwenchao
这个作者很懒,什么都没留下…
展开
-
iOS Runtime详细教程案例之-自己实现KVO
iOS Runtime详细案例之-自己实现KVO以自己实现KVO为课题来学习runtime通过上图为实现思路,分为以下几个步骤1. 属性内容变化的来源为其setKey方法的调用,也就是说在外面如果想改变一个属性的内容,最简单的方式就是调用其setKey方法;2. 我们使用runtime函数动态创建一个要observing 的类的派生类,然后重写他的setKey方法,在执行该方法时,调用通知的block或者你喜欢delegate也可以,最后再调用原来的setKey以保证原有流程不改变。3. 系统KVO的实现方原创 2020-06-01 16:00:38 · 278 阅读 · 0 评论 -
扩展UIButton的属性
UIButton+zz.h文件如下:@interface UIButton (zz)@property (nonatomic,strong) NSString *param1;@property (nonatomic,strong) NSString *param2;@endUIButton+zz.m文件如下:#import "UIButton+zz.h"#原创 2013-07-07 10:42:16 · 1123 阅读 · 0 评论 -
iOS内APP之间相互调用
iOS-应用之间调用 一、调用系统应用 1、调用app store界面方法在实际开发中,往往要推荐自己其他应用和推荐自己的收费软件,那么我们就需要在程序中直接连接到app store的相应页面。 实际上的做法很简单,使用的还是UIApplication类的OpenURL方法: [[UIApplication sharedApplication] open转载 2013-07-09 14:01:54 · 1822 阅读 · 0 评论 -
IOS中系统唯一标识ID
在2013年3月21日苹果已经通知开发者,从2013年5月1日起,访问UIDID的应用将不再能通过审核,替代的方案是开发者应该使用“在iOS 6中介绍的Vendor或Advertising标示符”。unique Identifier即将退出,苹果给了我们Vendor和Advertising identifier两个选择,但应该用哪一个?文档并没有给出确切答案,具体使用哪个完全由你根据自己a转载 2013-07-11 12:06:59 · 1533 阅读 · 0 评论 -
IOS NSUserDefaults用法
1、获取一个NSUserDefaults引用:NSUserDefaults *userDefaults = [NSUserDefaultsstandardUserDefaults];2、保存数据[userDefaults setInteger:1 forKey:@"ud_intvalue"];[userDefaults synchronize]; //将原创 2013-11-19 15:57:04 · 854 阅读 · 0 评论 -
IOS中Block问题
当前类名称为NSTestObject 继承自NSObject成员变量 UIView *_view;-(void) testChange{ void(^testblock)(void)=^{ 如在此处使用 _view 不会对_view的引用计数加1,也不会对self的引用计数加1 如在此处使用 self._view不会对_原创 2013-11-20 20:35:21 · 882 阅读 · 0 评论 -
关于GCD创建多线程时使用不同队列的说明
关于GCD中使用 dispatch_async(异步) 和 dispatch_sync(同步)分别对应DISPATCH_QUEUE_SERIAL(串行)和DISPATCH_QUEUE_CONCURRENT(并行)两种队列的使用情况详细说明。A1:输出结果为2014-01-29 10:56:54.303 MyCall[5549:60原创 2014-01-29 11:11:27 · 1302 阅读 · 0 评论 -
关于IOS7中 Modules和Autolinking
关于Objective-C,Modules和AutolinkingOC自从Apple接手后,一直在不断改进。随着移动开发带来的OC开发者井喷式增加,客观上也要求Apple需要提供各种良好特性来支持这样一个庞大的开发者社区。iOS4时代的GCD,iOS5时代的ARC,iOS6时代的各种简化,每年我们都能看到OC在成为一种先进语言上的努力。基于SmallTalk和runtime,本身是C的超集,如转载 2014-02-07 17:53:15 · 1218 阅读 · 1 评论 -
关于IOS中使用一倍图与二倍图的路径用法
最近再写一个IOS换肤的应用,里面用到了动态加载图片的地方,这种场景一般分为两种,一种为APP内置资源(APP包内), 另一种为下载资源(Documents下),这时我们会遇到一个问题, 就是传入的参数都是xxxx.png 全都不带@2x的后缀, 然尔如果我按之前的常用的方法, 即:UIImage imageNamed:这个方法时, 我们不需要关心当前的屏幕分辨率是否为高分屏, 这个函数会帮我们实原创 2014-03-04 16:43:46 · 3411 阅读 · 0 评论 -
定制iOS 7中的导航栏和状态栏
近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7。最新的iOS 7外观上有大量的改动。从开发者的角度来看,导航栏和状态栏就发生了明显的变化。状态栏现在是半透明的了,这也就意味着导航栏会显示在状态栏后面。有些情况下,导航栏的背景图片可以延伸显示到状态栏后面。 之前我曾经写过一篇关于如何定制导航栏的文章。不过现在是时候对其进行更新了。下面就是本文将要介绍的内容:本转载 2014-03-15 19:37:55 · 984 阅读 · 0 评论 -
关于swift与objective-c混合使用
详细的swift与objective-c混合使用文档,图解按步说明。原创 2014-06-12 12:05:50 · 4326 阅读 · 1 评论 -
iOS多个链接库冲突的解决办法(重复使用相同的开源代码)
网上流传了太多关于合并lib库的方法,自己也尝试过,但大多失败。有感于这种急于解决问题,经过百般尝试后依旧无果的无奈心情,小翁在这里用一个实例来完整阐述如何在mac中合并lib静态库。这里以移动广告平台多盟的三个lib库为例子,之所以以此为例子,是因为我也遇到了库冲突的问题,所以才有了本文的内容。本文的目标:合并libDomobOfferWallSDK.a、libDomobAdWa转载 2015-07-10 10:56:53 · 2907 阅读 · 0 评论 -
ios上保存密码或ID的钥匙串功能实现
SFHFKeychainUtils苹果SDK自带的就有密码保护,使用方法很简单,如下:1、引入Security.frameWork框架。2、引入头文件:SFHKeychainUtils.h.3、存密码:[SFHFKeychainUtils storeUsername:@"dd" andPassword:@"aa"forServiceName:SERVICE_NAME转载 2013-05-13 15:37:37 · 1053 阅读 · 0 评论 -
iOS多线程编程之NSOperation和NSOperationQueue的使用
使用 NSOperation的方式有两种,一种是用定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。另一种是继承NSOperation如果你也熟悉Java,NSOperation就和java.lang.Runnable接口很相似。和Java的Runnable一样,NSOperation也是设计用来扩展的,只需继承重写NSOperat转载 2013-05-07 15:44:58 · 533 阅读 · 0 评论 -
IOS 6下的viewDidUnload处理
ios6开始在内存紧张的情况下, 非活动界面也不会调用viewDidUnload了, 因些不会通过该方法释放出更多的可用内存。为保持我们原代码风格不变,可定一个新的BaseViewController他继承自UIViewController, 在.m文件中重写didReceiveMemoryWarning方法,如下所示:- (void)didReceiveMemoryWarning原创 2013-05-06 13:53:20 · 807 阅读 · 0 评论 -
cocos2d学习笔记第三章 让精灵按指定的路径来运动
1. 因为要自己写一个塔防的游戏,因此在之前我们创建的关卡1场景文件checkpoints_layer1.m中, 做一下地图的初始化,也就是我们要让精灵行走的路径预先定义下来。 -(void)initWayPoint { m_WayPoint = [[NSMutableArray alloc] initWithCapacity:500]; CGPoint原创 2012-09-21 18:20:23 · 1084 阅读 · 0 评论 -
objectiveC(ios)中多线程互斥锁
Using the @synchronized DirectiveThe @synchronized directive is a convenient way to create mutex locks on the fly in Objective-C code. The @synchronized directive does what any other mutex lock woul翻译 2012-11-29 14:22:11 · 1870 阅读 · 0 评论 -
ios反射调用类的方法(objectiveC)
// 正常调用 CLASSA *a = [[CLASSA alloc] init]; [a CallFunc]; // 反射调用 Class cls = NSClassFromString(@"CLASSA"); id a= [[cls alloc] init]; SEL selector = NSSelectorFromString(@"CallFu原创 2012-11-15 10:58:54 · 1941 阅读 · 0 评论 -
UIButton上image和title的位置调整
UIButton上image和title的位置调整方法: //UIEdgeInsetsMake(top left bottom right) [button setImageEdgeInsets:UIEdgeInsetsMake(0.0, 100.0,0.0, 0.0)]; //将image的位置向右移动100个像素 [button setTitleEdgeInsets:UIEdg原创 2012-12-21 14:00:45 · 2579 阅读 · 0 评论 -
xcode 4 svn配置(host is unreachable)
xcode 4 svn配置先保证你的xcode中已经安装了command line toolsxcode -> preferences -> downloads -> command line tools -> install===================================== 以下为xcode的svn配置.xcode4.3 自带了两个版本管理系统,分转载 2013-01-23 09:47:04 · 904 阅读 · 0 评论 -
LLVM 和 LLDB 调试器
XCode4.0以后,编译器换成了LLVM 编译器 2.0与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的.转载 2013-01-17 14:33:31 · 3479 阅读 · 0 评论 -
UILabel文字上对齐方法
//UILabel中的文字居上对齐- (void)setUILabelTextWithVerticalAlignTop:(UILabel*)lbl text:(NSString *)theText { // labelSize is hard-wired but could use constants to populate the size CGSize labelSiz原创 2013-02-16 16:31:16 · 1548 阅读 · 0 评论 -
代码获取IOS crash log
void UncaughtExceptionHandler(NSException *exception) { NSArray *arr = [exception callStackSymbols]; //堆栈信息 NSString *reason = [exception reason]; NSString *name = [exception name];原创 2013-03-18 14:55:57 · 869 阅读 · 0 评论 -
ios Signal错误的截获与处理
虽然大家都不愿意看到程序崩溃,但可能崩溃是每个应用必须面对的现实,既然崩溃已经发生,无法阻挡了,那我们就让它崩也崩得淡定点吧。IOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler 用来做异常处理,但功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误就无能为力了,因为这种错误它抛出的是Signal,所以必须要专门做Signal处理。首转载 2013-03-19 12:45:51 · 4887 阅读 · 0 评论 -
得到UIButton在UITableView中所在的行
当UIButton被加到Cell中的时候://在cellForRowAtIndexPath中添加UIButton的按下事件:[button1 addTarget:self action:@selector(onButtonClick:) forControlEvents:UIControlEventTouchUpInside];//UIButton按下时原创 2013-03-20 14:14:52 · 976 阅读 · 2 评论 -
IOS库文件—制作模拟器和真机中通用的.a文件
Xode开发IOS库文件应用时(.a文件),一般来讲提供给第三方开发用的是两个库文件,分别是模拟器和真机用的。即:xxxSimulater.a 和 xxxTarget.a为了第三方开发者方便使用,可以将两个.a文件合并成一个, 即可在模拟器和真机中都可以通用的.a文件。1.首先生成两个版本的.a文件xxxSimulater.a 和 xxxTarget.a 并将他们放原创 2013-04-22 11:05:38 · 1130 阅读 · 0 评论 -
XCode4.2中EXC_BAD_ACCESS错误
通常找不到出错的位置,大部分原因是由于release后没有置nil 所致。调试方法:Product->EditScheme->Run->Environment Variables 添加 NSZombieEnabled = YES这样出错可以输出更多的出错信息。类似这种:[1495:f803] *** -[NSMutableURLRequest releas原创 2011-12-20 14:24:32 · 858 阅读 · 0 评论