OC-方法

  1、类声明

@interface Person : NSObject
{
@public
    int _height;
    int _weight;
    int _age;
}
// 如果你不想每次使用方法都需要创建对象开辟存储空间
// 并且如果该方法中没有使用到属性(成员变量), 那么你可以把这个方法定义为类方法
// 对象方法用对象调用  类方法用类调用

// 如果定义类方法, 类方法的写法和对象方法一模一样, 除了前面的-号不同以外,只需要将对象方法的-号换成+, 那么就定义了一个类方法
+ (int)sumWithValue1:(int)value1 andValue2:(int)value2;
- (int)sumWithValue1:(int)value1 andValue2:(int)value2;
@end

  2、类实现

@implementation Person

// 行为的实现
// 注意: 如果声明的是对象方法那么就必须实现对象方法
//      如果声明的是类方法那么就必须实现类方法

+ (int)sumWithValue1:(int)value1 andValue2:(int)value2
{
    return value1 + value2;
}
- (int)sumWithValue1:(int)value1 andValue2:(int)value2
{
    return value1 + value2;
}
@end

  3、main函数

int main(int argc, const char * argv[]) {

    Person *p = [Person new];     // 通过类创建对象
    int sum0 = [p sumWithValue1:10 andValue2:20];  //调用对象方法
    int sum1 = [Person sumWithValue1:10 andValue2:20]; //调用类方法
    NSLog(@"sum0 = %i,sum1 = %i, sum0,sum1);
    return 0;
}

  

  类方法和对象方法的区别
  0. 对象方法以-开头
    类方法以+开头
  1. 对象方法必须用对象调用
      类方法必须用类来调用
  2. 对象方法中可以直接访问属性(成员变量)
      类方法中不可以直接访问属性(成员变量)
  3. 类方法和对象方法可以进行相互调用

  类方法的应用场景:
     如果方法中没有使用到属性(成员变量), 那么能用类方法就用类方法
     类方法的执行效率比对象方法高

  

时间: 2024-11-06 22:45:09

OC-方法的相关文章

OC方法和文件编译

一.OC方法 (一)对象方法 (1)对象方法以-开头如 -(void)xx; (2)对象方法只能又对象来调用 (3)对象方法中可以访问当前对象的成员变量 (4)调用格式   [对象名  对象方法名]: (5)设计一个学生类和狗类,练习对象方法的使用. 学生类的声明: 学生类的实现: 狗类的声明: 狗类的实现: 主程序: (二)类方法 (1)类方法以+开头  如+(void)put; (2)类方法只能由类来调用 (3)类方法中不能访问实例(成员)变量,因为类方法又类来调用,并没有创建存储空间来存储

【cocos2d-js官方文档】二十三、如何在IOS平台上使用js直接调用OC方法

在Cocos2d-JS v3.0 RC2中,与Android上js调用Java一样,Cocos2d-JS也提供了在iOS和Mac上js直接调用Objective-C的方法,示例代码如下: var ojb = jsb.reflection.callStaticMethod(className, methodNmae, arg1, arg2, .....); 在jsb.reflection.callStaticMethod方法中,我们通过传入OC的类名,方法名,参数就可以直接调用OC的静态方法,并且

UIWebView中Html中用JS调用OC方法及OC执行JS代码

1.HTML页面 1 <html> 2 3 <head> 4 5 <title>HTML中用JS调用OC方法</title> 6 7 <meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> 8 9 <script> 10 11 function test() 12 13 { 14 15 alert("test

转载 -- 基于原生JS与OC方法互相调用并传值(附HTML代码)

最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点就是方法的互相调用而已. 本文叙述下如何进行原生的JavaScript交互 本文包括JS调用OC方法并传值,OC调用JS方法并传值 本来想把html放进服务器里面,然后访问,但是觉得如果html在本地加载更有助于理解,特把html放进项目里 HTML代码 <!DOCTYPE html> <html> <head> <meta charset=&

在UIWebView中加载的HTML所触发的事件通过OC方法响应

前段时间在做项目时,在UIWebView加载的Html中点击了一个区域需弹出拍照界面,可是根据业务的不同情况,区域的位置是不同的.我考虑了多种方案,最后还是觉得这个通过“桥梁”用OC方法来处理对应节点的触发事件更为直接和方便. 工具类:WebViewJavascriptBridge  顾名思义,此类就像OC与JS的桥梁,可以使JS的事件与OC的方法相关联. WebViewJavascriptBridge包含一个类实例方法,入参是委托对象. 有一个委托方法,此方法是用来接受到html点击事件返回的

OC方法

// 创建对象 //    Person *student = [[Person alloc]init]; //   // student->_hobby = @"玉兔"; //    [student sayHi]; //    [student sleep]; //    Person *caoyu = [[Person alloc]init]; //    [caoyu sayHiWinthName:@"范冰冰"]; //    [caoyu sayHi

iOS-UIWebView的一些用法(js调oc方法)

源: http://www.jianshu.com/p/c38a8a8edcf0 UIWebView加载远程url NSURL *url = [NSURL URLWithString:@"[http://www.baidu.com]"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [self.webView loadRequest:request]; UIWebView加载本地html 方法1 //加载本地ht

iOS JS 交互之利用系统JSContext实现 JS调用oc方法

ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择如下操作,(拖入的文件夹是蓝色的,相对路径),不然css,js 的路径会存在问题 加载本地html: oc调用js:一句代码搞定 2.js 调用oc js调用oc又分为两种: 1.js端是直接调用方法 这里就要说到ios7才推出的一个新的api    JavaScriptCore,首先我们引入这个类,并初始化一个JSContext对

OC方法的定义

OC语法很怪异,这与C#和java很不一样: 不带参数的方法: - (void) run; 带一个参数的方法:- (void)eat:(NSString *)foodName; 带两个参数的方法: - (void)eat:(NSString *)foodName andWeight :(float)foodWeight 返回值       第一个参数类型|参数名    连接词和":"     第二个参数类型|参数名    eat:   @"草莓"          

[OC/Swift混编]在Swift中调用OC方法(转载)

OC中方法: - (void)sayWhat:(NSString *)name andAge:(NSString *)age { NSLog(@"%@,%@",name,age); } Swift中调用: someone.sayWhat("achao",andAge:"22")