OBject-C
文章平均质量分 64
爬行动物脑
学无止境。
展开
-
界面调试工具Reveal的使用介绍
Reveal注: 此处介绍Reveal,其中大部分内容来自于唐巧的《iOS开发进阶》一书,以此说明。如何使用Reveal进行模拟器调试,只需进行以下三个步骤即可。1. 创建.lldbinit文件vim ~/.lldbinit2. 输入以下内容,创建别名 command alias reveal_load_sim expr (void*)d原创 2015-07-29 10:25:00 · 4691 阅读 · 1 评论 -
iPhone 多媒体遥控(iPhone Remote Control of Multimedia)
用户要实现后台的播放的控制,需要按下面的方法来实现。这样实现的效果就是和iPod后台播放的效果一样。在后台播放音乐的时候可以通过任务栏来控制。任务栏通过双击Home键来调出,调出后向左滑到最前门可以看到这个控制按钮。如下图: 1.在View显示的时候接收remote-control事件- (void)viewDidAppe转载 2013-09-18 12:23:53 · 864 阅读 · 0 评论 -
iOS设计模式——单例模式
单例模式用于当一个类只能有一个实例的时候, 通常情况下这个“单例”代表的是某一个物理设备比如打印机,或是某种不可以有多个实例同时存在的虚拟资源或是系统属性比如一个程序的某个引擎或是数据。用单例模式加以控制是非常有必要的。单例模式需要达到的目的1. 封装一个共享的资源2. 提供一个固定的实例创建方法3. 提供一个标准的实例访问接口单例模式的创建本文以创转载 2013-09-17 18:04:52 · 741 阅读 · 0 评论 -
IOS开发之dispatch_once创建单例
单例是一种类,该类只能在第一次用的时候实例化一个对象,后期直接调用此对象(有点共享的意思)。在Foundation框架中比如NSFileManger和NSNotificationCenter,分别通过它们的类方法defaultManager和defaultCenter获取。尽管不是严格意义的单例,这些类方法返回一个可以在应用的所有代码中访问到的类的共享实例。使用Objective-C实现单例模转载 2013-09-17 18:09:02 · 973 阅读 · 0 评论 -
iOS 创建单例的两种方法
创建一个单例很多办法。我先列举一个苹果官方文档中的写法。 [cpp] view plaincopystatic AccountManager *DefaultManager = nil; + (AccountManager *)defaultManager { if (!DefaultManager) DefaultMa转载 2013-09-17 17:58:04 · 953 阅读 · 0 评论 -
iOS 如何创建单例对象
一、什么是单例?说到单例我就想起了我的java啊 ,不禁感叹起我的大学时光,学了4年的java开发,到现在还是放弃了我的java,踏入了iOS的行列。算了,入正轨,我现在正是铁树银花的青春美少女,不要抱怨,少说多做,要相信自己,要勇于拼搏,送自己一句话: 不论你在什么时候开始,重要的是开始之后就不要停止。单例模式是一种常见的设计模式。“单”是指唯一性,“例”是指实例化对象,也转载 2013-09-17 17:56:57 · 996 阅读 · 0 评论 -
ios 判断app程序第一次启动方法
在didFinishLaunchingWithOptions方法中加入如下代码:[plain] view plaincopyif(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]){ [[NSUserDefaults standardU转载 2013-09-16 14:53:30 · 2108 阅读 · 0 评论 -
程序中提醒用户进去App Store 评分 跳转 代码
大家都知道,评论和评分是决定app在appstore中排名的重要因素,但是大部分用户下载安装APP后却不会去点评,所以添加提示用户去点评的功能是很必要的,如下是代码:很多用户用了好软件后忘记或嫌麻烦而不去 App Store 进行打分评星,为此开发者可以在应用中加入打分按钮,点击后直接跳转到 App Store 的评分界面。 App Store 上评论的链接地址是 itms-转载 2013-09-16 14:15:48 · 1209 阅读 · 0 评论 -
iOS Hook
我们都知道在windows下可以通过API轻松的hook很多消息,IOS里面貌似还没有现成的API(可能是我还没发现吧),前段时间碰巧看到Objective-C运行时的一些东西,于是心想着是不是可以尝试一下实现hook的功能。 为什么要hook消息呢,因为有些时候我们可能无法直接去继承一个类,却又想先截获某些消息做一些处理,然后再接着进行正常的处理流程。今天使用运行时的一些API实现了基转载 2013-09-29 17:44:24 · 1715 阅读 · 0 评论 -
使用GNU 编译OBjectC
Compile Objective-C Programs Using gccProbably 99% of all Objective-C programmers out there are compiling their programs with XCode very happily. However that doesn't stop the other 1%, who转载 2013-10-05 12:01:59 · 2548 阅读 · 0 评论 -
Windows下的Objective-C集成开发环境(IDE)的搭建
Objective-C是苹果软件的编程语言,想要上机学习、调试,有一个集成开发环境(IDE)方便很多。有三类方法搭建Objective-C的集成开发环境:1) 使用苹果的平台,集成开发环境使用Xcode。但如果没有苹果平台,想在Windows环境下学习Objective-C,可以采用以下两种方法:2) 在Windows环境下设置一个苹果虚拟机,但这对个人电脑的性能要求较高,不是所有转载 2013-10-05 12:02:53 · 1903 阅读 · 2 评论 -
如何获取iPhone电池的状态和当前的电量
- (void)batteryMoniter { UIDevice *device = [UIDevice currentDevice]; device.batteryMonitoringEnabled = YES; if (device.batteryState == UIDeviceBatteryStateUnknown) { NSLog(@"UnKno转载 2014-04-10 10:32:46 · 1574 阅读 · 0 评论 -
Effective Objective-C 2.0 编写高质量iOS与OS X代码 用“方法调配计数”调试“黑盒方法”
1. 在运行期间,可以向类中新增或替换选择子所对应的方法实现。2. 使用另一份实现来替换原有的方法实现,这道工序叫“方法调配”(method swizzling),开发者常用调试技术向原有实现中添加新功能。3. 一般来说,只有调试程序的时候才需要再运行期间修改方法实现,这种做法不宜滥用。4. 类的方法列表会把选择子的名称映射到相关的方法实现之上,使得“动原创 2014-03-27 19:55:00 · 1518 阅读 · 0 评论 -
Effective Objective-C 2.0 编写高质量iOS与OS X代码 理解消息转发机制
1. 若对象无法相应某个选择子,则进入消息转发流程。2. 通过运行期的动态方法解析功能,我们可以在需要用到某个方法时再将其加入类中。3. 对象可以把其无法解读的某些选择子转交给其他对象来处理。4. 经上述两步,如果还是没办法处理选择子,就启动完整的消息转发机制。5. 消息转发分为两个大部分。第一阶段征询接收者所属的类,看其能否动态原创 2014-03-27 18:31:52 · 2657 阅读 · 0 评论 -
Effective Objective-C 2.0 编写高质量iOS与OS X代码 objc_msgSend 的作用
1. 消息由接收者、选择子及参数构成。给某对象“发送消息”(invoke a message)也就相当于在该对象上“调用方法”(call a method);2. 发给某对象的全部消息都由“动态消息派发系统”(dynamic message dispatch system)来处理,该系统会查出对应的方法,并执行其代码;3. C语言是使用“静态绑定”(static b原创 2014-03-27 16:15:09 · 3195 阅读 · 0 评论 -
IOS在后台每隔一段时间执行一下
步骤:1.在info.plist里加入UIBackgroundModes键,其值为数组,数组之一为voip字符串:UIBackgroundModesvoip2.在程序启动的时候调用- (void)setupBackgroundHandler函数,函数体如下:#pragma mark - VoIP - (void转载 2013-11-15 20:32:06 · 3974 阅读 · 1 评论 -
getifaddrs()和struct ifaddrs的使用,获取本机IP
ifaddrs结构体定义如下:C代码 struct ifaddrs { struct ifaddrs *ifa_next; /* Next item in list */ char *ifa_name; /* Name of interface */ unsigned int转载 2013-09-28 06:49:33 · 3025 阅读 · 0 评论 -
[iOS]深入浅出ObjC之消息
深入浅出ObjC之消息 罗朝辉(http://blog.csdn.net/kesalin)转载请注明出处在入门级别的ObjC 教程中,我们常对从C++或Java 或其他面向对象语言转过来的程序员说,ObjC 中的方法调用(ObjC中的术语为消息)跟其他语言中的方法调用差不多,只是形式有些不同而已。 譬如C++ 中的:Bird * aBir转载 2013-09-27 12:08:00 · 869 阅读 · 0 评论 -
IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、@synthesize、@property、@dyna
#synthesize关键字: 根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量 。@implementation 关键字,表明类的实现 @end 结束self 关键字 :类似于java中的this,是隐藏参数,指向当前调用方法的类。super 关键字 :调用父类的方法。self = [superinit] 这里不转载 2013-09-26 07:25:09 · 919 阅读 · 0 评论 -
objective C从远程地址获取图片并修改尺寸
NSString* imageURL = [NSString stringWithFormat: @"http://theimageurl.com/?id=%@", [[resultsEntries objectAtIndex:0] objectForKey: @"image_large"]];NSData* imageData = [[NSDa转载 2013-09-13 18:58:32 · 2101 阅读 · 0 评论 -
得到iPhone的IP地址函数
#include #include - (NSString *)getIPAddress{ NSString *address =转载 2013-09-13 18:57:21 · 1119 阅读 · 0 评论 -
如何制作一个圆角图像
void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth,float ovalHeight);{ float fw, fh; if (ovalWidth ==转载 2013-09-13 18:38:22 · 837 阅读 · 0 评论 -
判断iphone设备是否为高清屏
#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,960), [[UIScreen mainScreen] currentMode].size) : NO)转载 2013-09-13 18:45:37 · 652 阅读 · 0 评论 -
【iOS知识学习】_内存管理
内存管理是在程序运行期间分配内存,使用并释放的过程。一个好的程序会尽可能的用很少的内存。 当你的程序结束的时候,你要知道如何去管理应用程序的内存,不需要的对象要释放掉。内存管理的示例图如下:从图中可以看出,当没有指针指向某个对象的时候,这个对象将会被摧毁。Objective-c提供了两种内存管理的方式:1、MRC(manual retain-release):手转载 2013-09-05 21:34:41 · 716 阅读 · 0 评论 -
iOS知识学习】_UITableView简介
UITableView在iOS中估计是用的最多的控件了吧,几乎每个app都会用到。一、它是一个非常重要的类来在table中展示数据。1、是一个一维的表;2、是UIScrollView的一个子类;3、表可以是静态的或者动态的;4、通过dataSource 协议和 delegate协议可以实现很多的个性化定制;5、即便拥有大量数据也非常有效率。二、几种UITable转载 2013-09-05 21:24:09 · 762 阅读 · 0 评论 -
判断设备是否是 iphone5
1.在程序中涉及到全屏的宽高的时候,初始化的时候,代码中不要写320和480#define Screen_height [[UIScreen mainScreen] bounds].size.height#define Screen_width [[UIScreen mainScreen] bounds].size.width 2.使用宏定义方法判断#define转载 2013-09-11 10:41:34 · 620 阅读 · 0 评论 -
iOS 打印日志
简单介绍以下几个宏:1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。2) __FILE__ 宏在预编译时会替换成当前的源文件名3) __LINE__宏在预编译时会替换成当前的行号4转载 2013-09-10 15:10:00 · 1955 阅读 · 0 评论 -
NSLog的格式
NSLog的格式如下所示:%@ 对象%d, %i 整数%u 无符整形%f 浮点/双字%x, %X 二进制整数%o 八进制整数%zu size_t%p 指针%e 浮点/双字 (科学计算)%g 浮点/双字%s C 字符串%.*s Pascal字符串%c 字符%C unichar%lld 64位长整数(long long)%llu 无符64位长整数%Lf 64位双字转载 2013-09-07 14:55:57 · 536 阅读 · 0 评论 -
【iOS知识学习】_iOS FrameWork相关知识
框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共享资源库定义应用程序可以调用的函数和方法。iOS 提供了许多可在应用程序开发中使用的框架。要使用一个框架,请将它添加到项目,以便应用程序可以链接到它。大多数应用程序都链接到 Foundation、UIKit 和 Core Graphics 框架。根据您为应用程序选取的模板,可能也包括其他框架转载 2013-09-05 21:35:25 · 652 阅读 · 0 评论 -
实现pushViewController:animated:的不同页面转换特效
1. 首先要明确的是,不使用pushViewController的默认动画,所以在调用这个函数时,要将animated设置为NO.2. 使用普通的来CATransition实现转换效果,代码如下:CATransition *animation = [CATransition animation];[animat转载 2013-09-13 18:51:23 · 1472 阅读 · 0 评论 -
iphone发起http请求代码
//prepar request NSString *urlString = [NSString stringWithFormat:@"http://urlToSend.com"]; NSMutableURLRequest *request = [[[NSMutableURLRequest al转载 2013-09-13 18:55:40 · 1060 阅读 · 0 评论 -
隐藏或显示iphone的状态条
//Hide[UIApplication sharedApplication].statusBarHidden = YES; //Show[UIApplication sharedApplication].statusBarHid转载 2013-09-13 19:00:02 · 815 阅读 · 0 评论 -
iphone和cocoa日期格式化
//Format DateNSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];[dateFormat setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"]; // 2009-02-01 19:50:转载 2013-09-13 18:53:40 · 777 阅读 · 0 评论 -
objective C 中用safari打开指定的链接
调用iphone上的safari打开指定的urlNSURL *url = [ [ NSURL alloc ] initWithString: @"http://www.cnn.com" ];[[UIApplication sharedApplication] openURL:url];转载 2013-09-13 18:52:22 · 3003 阅读 · 0 评论 -
UISearchBar背景透明的方法
[[searchbar.subviews objectAtIndex:0]removeFromSuperview];转载 2013-09-13 18:49:30 · 755 阅读 · 0 评论 -
在一个label中显示多行,自动换行
在active.com的开发项目中,遇到一个动态显示detail page的问题。取的数据有的时候多有的时候少,而且还需要自动换行。计算行的高度,text的长度,大小等。EventAddresslabel=[[UILabel alloc]initWithFrame:CGRectMake(starttimelabel.frame.origin.x, start转载 2013-09-13 18:47:59 · 3618 阅读 · 0 评论 -
在cell的范围中画一个标准的焦点环
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;{ // other stuff might happen here if ([self showsFirstRe转载 2013-09-13 18:44:47 · 1145 阅读 · 0 评论 -
iphone视图之间的过度
// get the view that's currently showing UIView *currentView = self.view; // get the the underlying UIWindow, or the view containing the current view view转载 2013-09-13 18:56:27 · 687 阅读 · 0 评论 -
得到iphone应用程序的版本号
得到iphone应用程序的版本号,从 Info.plist获取NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];转载 2013-09-13 18:54:39 · 1389 阅读 · 0 评论 -
【iOS知识学习】_iOS入门知识学习(二)
在前一篇文章中主要介绍了IOS的操作系统层次、各层次所负责的功能,还有进行iOS开发需要掌握的一些基本工具,以及很重要很重要的MVC模式。今天一块学习一下objective-c语言的基础知识吧,语言嘛,所谓一通百通,如果你有c语言的开发基础是最好的,因为objective-c语言就是c语言的一种变形吧,当然,如果你有其他语言的开发经验,其实学起来还是很快的。关于一门开发语言,那个要学习的东转载 2013-09-05 21:31:11 · 606 阅读 · 0 评论