ios知识整理——类的声明和实现
来源:互联网 发布:淘宝客微信采集软件 编辑:程序博客网 时间:2024/06/16 21:01
一个类完整的类包括:类名,实例变量/属性,功能/行为
声明:使用@interface @end关键字 实现:使用@implementation @end关键字
主函数:#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]) { @autoreleasepool {//声明一个实例或对象p Person *p = [Person new];//[Person new]相当于[[Person alloc]init]//[Person new]完成了三个步骤//1.在堆区中开辟内存空间(alloc)2.初始化成员变量值(init)3.返回指针地址 此处赋值给栈区的局部变量p p.age = 7;//点语法的运用,相当于[p setAge:7];//int age = [p Age]; NSLog(@"age = %d",p.age); } return 0;}.h声明文件:#import <Foundation/Foundation.h>@interface Person : NSObject{ int _age; NSString * _name; }//封装的实现步骤//setter和getter方法的声明//set、get方法的注意事项://注意:在.h中声明的所有方法作用域都是public类型,不能更改-(void)setAge:(int)age;-(int)age;@end.m实现文件:#import "Person.h"@implementation Person//封装的//setter和getter方法的实现/*set命名规范:(1)方法名必须以set开头(2)Set后面跟去掉下划线的成员变量的名称,首字母大写(3)返回值一定是void (4)一定要接收一个参数,而且参数类型需要和成员变量的类型一致 (5)形参名不能和成员变量名一样(苹果官方推荐成员变量名前加_以示区分) get命名规范:(1)一定有返回值,返回值的类型和成员变量的类型一致 (2)方法名为去掉下划线的成员变量名 (3)不需要接收任何参数 */-(void)setAge:(int)age{ _age = age; }-(int)age{ return _age;}@end注意,xcode对该方法做了优化,以上的set、get方法可以直接使用@property(nonatomatic,assign) (int) age;代替,不需要在.m文件中再进行方法的实现,同时可以直接省略成员变量_age的声明,简化如下:.h声明文件中:#import <Foundation/Foundation.h>@interface Person : NSObject{ //int _age; //NSString * _name; }@property(nonatomatic,assgin)(int)age;@property(nonatomatic,copy)(NSString *)name;//retain为MRC中对于类的内存管理优化 ARC中同类对象需要使用strong@end</span></span>
@property内存管理策略选择
@property内存管理策略的选择
1.非ARC
<1> copy : 只用于NSString\block
<2> retain : 除NSString\block以外的OC对象
<3> assign : 基本数据类型、枚举、结构体(非OC对象),当2个对象相互引用,一端用retain,一端用assign
2.ARC
<1> copy : 只用于NSString\block
<2> strong : 除NSString\block以外的OC对象
<3> weak : 当2个对象相互引用,一端用strong,一端用weak 4> assgin : 基本数据类型、枚举、结构体(非OC对象)
0 0
- ios知识整理——类的声明和实现
- 小知识~关于声明和定义的一点整理
- ios第一课 关于类的声明和实现
- iOS 常量的声明和实现
- 类的声明和实现
- 类的声明和实现
- 类的声明和实现
- iOS —— 多参数方法的声明与实现
- 二分法的知识整理和代码的实现
- iOS 中可变参数方法的声明和实现
- iOS之04-方法的声明和实现
- ios视频学习3.2 类的声明和对象的创建—内存分析1
- 【无限互联】iOS开发视频教程— 3.3 类的声明和创建内存分析2
- 将类的声明和实现分离
- OC一个类的声明和实现
- 顺序表的类声明和实现
- oc--类的声明和实现
- 黑马程序员--类的声明和实现
- Ubuntu Server 14.04搭建OpenVPN服务器保护你的隐私生活
- 从抽象类到模板方法模式
- 浅谈求职路之一
- 【Unity3d】3d角色换装实现原理及步骤
- 使用MediaRecorder实现录像的功能
- ios知识整理——类的声明和实现
- iOS(3)多线程编程技术(Thread Cocoa opreations GCD(Grand Central Dispatch ))
- 浅谈大数据的认识
- opencv solvePnP
- 【数论】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- Matplotlib Toolkits:python高级绘图库seaborn
- 机房收费系统——详细设计说明书
- J - Lines
- Android下编译wifidog