objective-c 实例方法\类方法如何调用 举例oc实例方法和类方法的区别?

objective-c \u5b9e\u4f8b\u65b9\u6cd5\\u7c7b\u65b9\u6cd5\u5982\u4f55\u8c03\u7528

\u5728\u4e66\u5199\u4e86\u7c7b\u7684\u58f0\u660e\u548c\u5b9e\u73b0\u540e\uff0c\u5e94\u7528\u7a0b\u5e8f\u5982\u4f55\u53bb\u8c03\u7528\u5b83\u5462\uff1f
\u5728Objective-c\u4e2d\uff0c\u8c03\u7528\u65b9\u6cd5\u7684\u7b80\u5355\u683c\u5f0f\u5982\u4e0b\uff1a
1[\u5b9e\u4f8b \u65b9\u6cd5]; \u5982\uff1a [person setAge:32]; \u5176\u4e2d person\u662fPerson\u7c7b\u7684\u5b9e\u4f8b\u3002
\u6216\u8005\u662f\uff1a
2 [\u7c7b\u540d \u65b9\u6cd5\u540d]; \u5982\uff1aNSString str = [NSDate date]; \u8fd9\u662f\u76f4\u63a5\u8c03\u7528\u7c7bNSdate\u4e2d\u7684\u65b9\u6cd5date\u6765\u5f97\u5230\u5f53\u524d\u65e5\u671f\u548c\u65f6\u95f4\u3002
\u5728Objective-c\u4e2d\uff0c\u8c03\u7528\u4e00\u4e2a\u7c7b\u6216\u5b9e\u4f8b\u7684\u65b9\u6cd5\uff0c\u4e5f\u79f0\u4e3a\u7ed9\u8fd9\u4e2a\u7c7b\u6216\u5b9e\u4f8b\u53d1\u6d88\u606f(message)\u3002\u7c7b\u7684\u5b9e\u4f8b\u79f0\u4e3a\u201c\u63a5\u6536\u65b9\u201d\u3002\u6240\u4ee5\uff0c\u901a\u7528\u65b9\u6cd5\u8c03\u7528\u7684\u683c\u5f0f\u4e5f\u53ef\u4ee5\u7406\u89e3\u4e3a\uff1a
[\u63a5\u6536\u65b9 \u6d88\u606f];
\u5728\u672f\u8bed\u4e0a\uff0c\u6574\u4e2a\u8868\u8fbe\u5f0f\u4e5f\u53eb\u505a\u6d88\u606f\u8868\u8fbe\u5f0f\u3002\u8fd9\u662f\u5b98\u65b9\u7684\u6b63\u5f0f\u79f0\u547c\u3002
\u5f53\u7136\uff0c\u4e00\u4e2a\u65b9\u6cd5\u53ef\u80fd\u4f1a\u6709\u53c2\u6570\uff0c\u4e5f\u6709\u53ef\u80fd\u4f1a\u6709\u591a\u4e2a\u53c2\u6570\uff0c\u56e0\u6b64\u5b8c\u6574\u7684\u65b9\u6cd5\u8c03\u7528\u683c\u5f0f\u5982\u4e0b\uff1a
[\u63a5\u6536\u65b9\u6cd5 \u540d\u5b501:\u53c2\u65701 \u540d\u5b502:\u53c2\u65702 \u540d\u5b503:\u53c2\u6570 ... ]
\u5982\uff1a
[person setAge:32];
[person setName:@"sam" andSecondName:@"job"];
\u6ce8\uff1a\u5728\u591a\u53c2\u6570\u65b9\u6cd5\u8c03\u7528\u65f6\uff0c\u53ef\u4ee5\u7701\u7565\u4ece\u7b2c\u4e8c\u4e2a\u5f00\u59cb\u7684\u65b9\u6cd5\u540d\u5b50\u3002
\u5982\uff1a
[person setName:@"sam" :@"job"];
\u4e00\u4e2a\u65b9\u6cd5\u4e2d\u8fd8\u53ef\u4ee5\u8c03\u7528\u53e6\u5916\u4e00\u4e2a\u65b9\u6cd5\u8c03\u7528\uff0c\u5982\uff1a
[NSString stringWithFormat:[test format]];
\u6ce8\uff1a\u65b9\u6cd5\u7684\u8c03\u7528\u4e00\u5b9a\u8981\u52a0\u4e0a\u4e2d\u62ec\u53f7\u201c[........]\u201d

1.\u6210\u5458\u53d8\u91cf\u53ef\u4ee5\u7406\u89e3\u4e3a\u6240\u6709\u5728\u7c7b\u7684\u5934\u4e0a\u58f0\u660e\u7684,\u65e0\u8bba\u662f@interface\u3001@implementation\u4e0b\u7528\u5927\u62ec\u53f7\u62ec\u8d77\u6765\u6216\u8005\u662f\u7528@property\u58f0\u660e\u7684\u53d8\u91cf\u90fd\u53ef\u4ee5\u79f0\u4f5c\u8fd9\u4e2a\u7c7b\u7684\u6210\u5458\u53d8\u91cf\uff0c\u53ea\u662f\u5728@implementation\u4e0b\u58f0\u660e\u7684\u53d8\u91cf\u662f\u8fd9\u4e2a\u7c7b\u7684\u79c1\u6709\u53d8\u91cf\uff0c\u5916\u90e8\u662f\u65e0\u6cd5\u8bbf\u95ee\u7684\uff0c\u800c\u5728@interface\u4e0b\u58f0\u660e\u7684\u53d8\u91cf\u53ef\u4ee5\u8bbe\u5b9a\u4e3a\u5168\u5c40\u6216\u8005\u79c1\u6709\u53d8\u91cf\uff0c\u800c\u7528@property\u58f0\u660e\u7684\u5c31\u662f\u5168\u5c40\u53d8\u91cf\uff0c\u662f\u5916\u90e8\u65e2\u53ef\u4ee5\u8bbf\u95ee\uff0c\u5185\u90e8\u4e5f\u53ef\u4ee5\u8c03\u7528\u7684

2.\u9996\u5148\u786e\u5b9a\u4e00\u4e0b\uff0c\u5bf9\u8c61.xxx\u7684\u8bed\u6cd5\u540e\u9762\u8ddf\u7684\u4e0d\u662f\u65b9\u6cd5\uff0c\u662f\u4e00\u4e2a\u53ef\u4ee5\u88ab\u8bbf\u95ee\u7684\u6210\u5458\u53d8\u91cf\uff0c\u4e4b\u6240\u4ee5\u53ef\u4ee5\u7528\u5bf9\u8c61.\u65b9\u6cd5\u8fd9\u79cd\u65b9\u5f0f\u8c03\u7528\uff0c\u662f\u56e0\u4e3a\u7528@property\u5b9a\u4e49\u6216\u8005\u624b\u52a8\u8bbe\u7f6e\u4e86\u8fd9\u4e2a\u53d8\u91cf\u7684setter\u548cgetter\u65b9\u6cd5\uff1b\u800c[\u5bf9\u8c61 \u65b9\u6cd5]\u624d\u662fOC\u4e2d\u6807\u51c6\u7684\u8c03\u7528\u65b9\u6cd5\u7684\u8bed\u6cd5\u65b9\u5f0f\uff0c\u8fd9\u79cd\u65b9\u5f0f\u7684\u539f\u7406\u662f\u5411\u8be5\u5bf9\u8c61\u4e2d\u53d1\u9001\u4e00\u4e2a\u6d88\u606f\uff0c\u5982\u679c\u5bf9\u8c61\u4e2d\u6709\u76f8\u5e94\u7684\u6d88\u606f\u5c31\u4f1a\u505a\u51fa\u56de\u5e94\uff0c\u8fd9\u5c31\u662fOC\u7684\u6d88\u606f\u673a\u5236\uff0c\u76ee\u524d\u6700\u5e38\u7528\u7684\u4e5f\u662f\u8fd9\u4e00\u79cd\u8868\u793a\u5f62\u5f0f

3.\u7c7b\u65b9\u6cd5\u7684\u610f\u601d\u662f\u4e0d\u9700\u8981\u58f0\u660e\u4e00\u4e2a\u5bf9\u8c61(\u5b9e\u4f8b)\u5c31\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528\u7684\u65b9\u6cd5\uff0c\u901a\u5e38\u662f\u6709\u8fd4\u56de\u503c\u7684(\u5426\u5219\u7c7b\u65b9\u6cd5\u5c31\u65e0\u610f\u4e49\u4e86\uff0c\u56e0\u4e3a\u6ca1\u6709\u5bf9\u8c61\u6216\u8005\u76f8\u5e94\u7684\u6210\u5458\u53d8\u91cf\u7684\u503c\u53ef\u4ee5\u8bbe\u7f6e)\u3002\u4f5c\u7528\u5c31\u662f\u8fd4\u56de\u4e00\u4e9b\u8fd9\u4e2a\u7c7b\u7279\u5b9a\u7684\u5b9e\u4f8b\uff0c\u6bd4\u5982\u5b57\u7b26\u4e32\u7684[NSString stringWithFormat:@""];\u8fd9\u4e2a\u7c7b\u65b9\u6cd5\uff0c\u4f5c\u7528\u5c31\u662f\u8fd4\u56de\u4e00\u4e32\u81ea\u5b9a\u4e49\u7684\u5b57\u7b26\u4e32\uff0c\u7528\u6cd5\u548c[NSString alloc]initWithFormat:@""];\u6ca1\u6709\u533a\u522b
\u4f46\u662f\uff0c\u5b9e\u9645\u4e0a\u7528\u7c7b\u65b9\u6cd5\u521b\u5efa\u7684\u5bf9\u8c61\u662f\u88ab\u7cfb\u7edf\u81ea\u52a8\u5f52\u5230\u81ea\u52a8\u91ca\u6c60\u4e0b\u7ba1\u7406\u7684\uff0c\u800c\u7528alloc\u65b9\u6cd5\u521b\u5efa\u7684\u5bf9\u8c61\u5982\u679c\u5728\u624b\u52a8\u5185\u5b58\u7ba1\u7406\u6a21\u5f0f\u4e0b\uff0c\u9700\u8981\u7528release\u65b9\u6cd5\u8fdb\u884c\u91ca\u653e\uff0c\u8fd9\u5c31\u662f\u4e24\u8005\u7684\u533a\u522b\u4e86

在书写了类的声明和实现后,应用程序如何去调用它呢?
在Objective-c中,调用方法的简单格式如下:
1[实例 方法]; 如: [person setAge:32]; 其中 person是Person类的实例。
或者是:
2 [类名 方法名]; 如:NSString str = [NSDate date]; 这是直接调用类NSdate中的方法date来得到当前日期和时间。
在Objective-c中,调用一个类或实例的方法,也称为给这个类或实例发消息(message)。类的实例称为“接收方”。所以,通用方法调用的格式也可以理解为:
[接收方 消息];
在术语上,整个表达式也叫做消息表达式。这是官方的正式称呼。
当然,一个方法可能会有参数,也有可能会有多个参数,因此完整的方法调用格式如下:
[接收方法 名子1:参数1 名子2:参数2 名子3:参数 ... ]
如:
[person setAge:32];
[person setName:@"sam" andSecondName:@"job"];
注:在多参数方法调用时,可以省略从第二个开始的方法名子。
如:
[person setName:@"sam" :@"job"];
一个方法中还可以调用另外一个方法调用,如:
[NSString stringWithFormat:[test format]];
注:方法的调用一定要加上中括号“[........]”

扩展阅读:objective bound ... objective factor ... object c 菜鸟教程 ... objective-c教程 ... objective to do还是doing ... objective c源码 ... objective ness ... 网页出现两个object ... object and objective ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网