一,Xcode的.m扩展名表示文件含有Objective-C代码,应由Objective-C编译器处理。C编译器处理名称以.c结尾的文件,而C++编译器处理.cpp文件。在Xcode中,所有这些编译工作全由GCC处理,这个编译器能够理解C语言的全部3个变体。 二,Objective-C刚诞生的时候,扩展名.m代表message,指的是Objective-C的一个主要特性。 三,和C语言一样,Objective-C使用头文件来包含元素声明,这些元素包括结构体,符号常量,函数原型等。C语言使用#i...
/*
XCode LLVM XXX - Preprocessing中Debug会添加 DEBUG=1 标志
*/
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(FORMAT, ...) nil
#endif把以上代码粘贴到ProjectName-Prefix.pch文件中。在调试的时候,会输出(格式:...
首发地址:http://www.cnblogs.com/esrichina/archive/2012/10/25/2671149.html
Objective-C这门语言是由Brad Cox和Tom Love于1980年在Stepstone发明的。它是给C语言添加了面向对象的特性,与C语言完全兼容。目前,主要用于苹果的Mac OS X和iOS平台的开发。在2012年10月世界开发语言排行榜中Objective-C稳居于第三位。
?关键字 为了避免与C,C++语言中的关键字冲突,所有的Objective-C关键字都是以@开始。 如@class,@inter...
Have you tried this?CGFloat val = 37.777779;CGFloat rounded_down = floorf(val * 100) / 100; /* Result: 37.77 */CGFloat nearest = floorf(val * 100 + 0.5) / 100; /* Result: 37.78 */CGFloat rounded_up = ceilf(val * 100) / 100; /* Result: 37.78 */source : Rounding Number to 2 Decimal Places in CComplementing: You just don‘t have control about how the computer will store the float value.So the...
在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有。1,先看看setValue: forKey:的定义 @interface NSMutableDictionary(NSKeyValueCoding)/* Send -setObject:forKey: to the receiver, unless the value is nil, in which case send -removeObject:forKey:.*/- (void)setValue:(id)value forKey:(NSString *)key;@end扩展NSMutableDictionar...
IOS8.0(Objective-C) 手势锁屏AppIOS 手势锁屏实现逻辑分析: 1、通过循环在页面中添加透明背景白色边框的按钮(默认为九个)并设置 tag 值,以便与原始密码核对 2、扑捉手势,主要用到touchesBegan、touchesMoved 和 touchesEnded 3、将手势经过的按钮划线链接起来,主要用到 CGContextRef 2D绘画对象如下代码所示为 IOS 手势锁屏全部 App源码,仅供学习:ViewController.h#import <UIKit/UIKit.h>@interface ViewControl...
前言在计算机视觉CV领域,视觉跟踪是其中一个重要的子问题。从我的角度看,视觉跟踪就是用在机器人上,用在移动设备上,因此,何不把一些跟踪算法放在iPhone上看看实际的跟踪效果。这才是最真实的对比,使用一些视频毕竟不实际,而且关键是不能很好的对比实时性。对于移动设备而已,实时性是最重要的吧。之所以有跟踪问题的出现,也是因为绝大多数的物体检测Object Detection算法实在是太慢了,根本无法用在视频当中。因此才有了Ob...
概述前面已经简单介绍过ObjC的基础知识,让大家对ObjC有个大致的印象,今天将重点解释ObjC面向对象的特性。ObjC相对于C语言多了面向对象特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简。当然这并不代表今天的内容就会少,今天的内容还是相当多的:类定义成员变量方法和属性self关键字构造方法description方法继承类定义在C#、Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字cl...
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言。Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题。Swift语言采用安全编程模式,且引入了多种新功能,使得编程工作更加简便,灵活! 2015年6月9日苹果又一次给所有开发之者带来了一个惊喜,那就是今年年底swift讲开源,者队iOS开发着来说无疑是一个值得兴奋的消息,可是就在这短短的几个月里面swift吸引了越来越多的开发者去学习,不仅仅是i...
一. Object-C 方法详解1. 方法属性(1) OC 方法传参机制Object-C 方法传参机制 : OC 中得参数传递都是值传递, 传入参数的是参数的副本; -- 基本类型 (值传递) : int 等基本类型直接传入 这些基本类型的的副本;-- 指针类型 (地址传递) : 使用指针变量作为参数, 传递的也是指针变量的副本, 但是这个副本本身的值是一个地址, 地址 变量 和 地址 变量的副本 还是指向同一个地址;(2) OC 方法 与 传统函数方法 与 传统函数 : -- 结构化编程...
objection 是一个轻量级的依赖注入框架「依赖注入」是面向对象编程的一种设计模式,用来减少代码之间的耦合度。通常基于接口来实现,也就是说不需要new一个对象,而是通过相关的控制器来获取对象。2013年最火的PHP框架 laravel 就是其中的典型。具体使用如下:1、首先创建protocol文件@protocol PPHomeViewControllerProtocol <NSObject>@end2、初始化+ (void)load
{JSObjectionInjector *injector = [JSObjection defaultInjector...
移动app开发中,由于移动设备内存的限制,内存管理是一个非常重要的话题。objective-c的内存管理,不仅是面试当中老生常谈的一个必问话题,也是日常项目开发中,特别需要重视的环节。对于笔者这种以java语言入门编程世界的开发者来说,习惯了垃圾收集器的自动化管理,对于oc的引用计数器管理方式,还是需要花功夫来学习和运用。1. ARC 和 非ARC oc的内存管理方式,分为ARC(automatic reference counting自动引用计数)和非ARC模式。...
今天看别人代码的时候发现这样的用法navigationController.viewControllers = @[secondViewController];这里用到了@[]。刚开始不是很明白,问了才知道,原来这是数组的初始化。是ios6之后引入的方式。mark下。@[] 初始化不可变数组@{} 初始化不可变字典举例如下: NSArray *testArr = @[@"a", @"b", @"c", @"d"];NSString *testStr = testArr[2];NSLog(@"testArr========%@",testStr);NSDictionary *testDic = @{@"a": @"first"...
1 Person *person1 = [[Person alloc]init];2 Person *person2 = [[Person alloc]init];3 4// 可以调用类中的私有方法,但是会有一个警告 5 [person1 performSelector:@selector(actionTow)];6 [person1 performSelector:@selector(actionOne:) withObject:@"test"];7 8 NSLog(@"person1的地址:%p",person1);9 NSLog(@"person2的地址:%p",person2);
1011// 比较两个对象的地址是否相同12if ([perso...
最近在iOS项目中需要使用到oc与js之间的相互调用,而且要求是实现方式必须与Android中的相同,方便js中统一处理。于是在对第三方库WebViewJavascriptBridge进行研究之后,仿照Android中的WebView与JS的交互机制,实现了一个,在这里分享给大家。首先要说明的是,在iOS中js调用Objective-C的代码只能通过重定向的形式进行,即js中通过修改iframe的src,或者直接跳转到一个url,在Objective-C中通过UIWebView的webView:shouldStartLo...