oc59--匿名分类

简介:
复制代码
//
//  main.m
//  匿名分类(延展)
//  可以为某个类扩展私有的成员变量和方法,写在.m文件中,
//  分类不可以扩展属性,分类有名字,匿名分类没有名字。

#import <Foundation/Foundation.h>
#import "Person.h"

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

    Person *p = [Person new];
    
    p->_age;  //报错
    [p say];  //报错
    
    return 0;
}
复制代码
复制代码
//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject

//{
//    int _age;
//}

//- (void)eat;
//- (void)say;

@end
复制代码
复制代码
//
//  Person.m

#import "Person.h"

@interface Person ()   //没有名字,所以叫匿名分类,不需要实现,
{
    int _age;  //私有的属性
}

- (void)say;   //私有的方法

@end

@implementation Person

//{
//    int _age;  //私有的属性
//}

-(void)eat    //没有声明只有实现,方法是私有的,
{
    NSLog(@"%s", __func__);
}

- (void)say   //没有声明只有实现,方法是私有的,
{
    NSLog(@"age = %i", _age);
}
@end
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7436182.html,如需转载请自行联系原作者

相关文章
.NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
.NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
179 0
|
Go
go的继承:匿名字段
go的继承:匿名字段
121 0
|
存储 iOS开发
OC的类信息存放在哪里,看完千万别说还不知道
这篇行文主要介绍OC的类信息具体存放在哪个位置。在了解这个之前,要先明白 Objective-C中的对象(后称OC对象),主要可以分为哪几种,如下: 1、instance对象(实例对象) 2、class对象(类对象)-https://so.csdn.net/so/search?q=%E7%B1%BB%E5%AF%B9%E8%B1%A1&spm=1001.2101.3001.7020 3、meta-class对象(元类对象)
297 0
OC的类信息存放在哪里,看完千万别说还不知道
|
存储 API 对象存储
OC:在分类中添加成员变量,原来帮我们做了那么多事
本篇文章告诉你,如果在类对象和Category对象中添加一个属性时,底层做了什么。关联对象如何给Category对象添加成员变量,关联对象的实现原理。
220 0
OC:在分类中添加成员变量,原来帮我们做了那么多事
|
JSON 数据格式 Python
.NET6新东西--隐式命名空间引用
.NET6新东西--隐式命名空间引用
342 0
.NET6新东西--隐式命名空间引用
|
C++
warning C4250: “MyClassD”: 通过域控制继承“MyClassC::MyClassC::MyMethod”
warning C4250: “MyClassD”: 通过域控制继承“MyClassC::MyClassC::MyMethod”
341 0
【.Net Micro Framework PortingKit - 04】修改启动代码&重写向量表
在上三篇《移植初步:环境搭建》《STM3210E平台构建》《调试初步:点亮LED灯》文章中,我们介绍了如何搭建开发环境,并初步写了测试代码,下一步我们将根据Cortex-M3的架构特点,修改启动代码和重写中断向量表。
636 0
|
API
晚绑定场景下对象属性赋值和取值可以不需要Pro“.NET研究”pertyInfo
  在《一句代码实现批量数据绑定》中,我通过界面控件ID与作为数据源的实体属性名之间的映射实现了批量数据绑定。由于里面频繁涉及对属性的反射——通过反射从实体对象中获取某个属性值;通过反射为控件的某个属性赋值,所以这不是一种高效的操作方式。
829 0
|
C# C++
一起谈.NET技术,解决T4模板的程序集引用的五种方案
  在众多.NET应用下的代码生成方案中,比如CodeDOM,BuildProvider, 我觉得T4是最好的一种。关于T4的基本概念和模板结果,可以参考我的文章《基于T4的代码生成方式》。如果要了解T4具体的应用,则可以参考我的文章《创建代码生成器可以很简单:如何通过T4模板生成代码?》(上篇)(下篇)。
1437 0