Runtime 为分类增加成员变量

//
//  BMKPoiSearch+networkID.h
//
//  Created by pilgrim on 15/10/16.
//  Copyright © 2015年 tomtom. All rights reserved.
//

#import <BaiduMapAPI/BMKPoiSearch.h>

@interface BMKPoiSearch (networkID)

@property (nonatomic, strong) id networkID;
@end
<pre name="code" class="objc">//
//  BMKPoiSearch+networkID.m
//
//  Created by pilgrim on 15/10/16.
//  Copyright © 2015年 tomtom. All rights reserved.
//

#import "BMKPoiSearch+networkID.h"
#import <objc/runtime.h>

static const void * externVariableKey =&externVariableKey;

@implementation BMKPoiSearch (networkID)

@dynamic networkID;
- (id)networkID
{
    return objc_getAssociatedObject(self, externVariableKey);
}
- (void)setNetworkID:(id)networkID
{
    objc_setAssociatedObject(self, externVariableKey, networkID, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end

 
问题描述:百度地图的SDK,将.m实现文件封装成静态库,只暴露了头文件中的API接口。如果想向某一个类中增加一个成员变量,因为.m文件不可见,用Extention是不能实现的。而Category只能增加方法,不能增加成员变量。
解决方案:可以用运行时解决Category不能增加成员变量的问题。解决方法如上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值