//
// 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不能增加成员变量的问题。解决方法如上。