mam*_*mcx 1 objective-c nsmutabledictionary
我得到了一些我无法得到的奇怪的东西.我正在使用第三方控件(https://github.com/brunow/TableKit.m),它可以:
+ (NSSet *)cellMappingsForObject:(id)object mappings:(NSDictionary *)mappings {
NSString *objectStringName = NSStringFromClass([object class]);
return [mappings objectForKey:objectStringName];
}
Run Code Online (Sandbox Code Playgroud)
它创建了一个基于类名称的映射:
[TKCellMapping mappingForObjectClass:[NSMutableDictionary class] block:^(TKCellMapping *cellMapping) {
//CODE
}];
Run Code Online (Sandbox Code Playgroud)
它根据映射检查数据源对象.这些对象是为我构建的:
while ([rs next]) {
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
for (NSString *fieldName in [props allKeys]) {
//CODE
[dict setValue:fieldValue forKey:fieldName];
}
[list addObject :dict]; //<--This is the datasource. The map is against each dict
}
Run Code Online (Sandbox Code Playgroud)
所以,我告诉它的每一个地方NSMutableDictionary.但后来发生这种奇怪的事情.
当它打电话NSStringFromClass([NSMutableDictionary class])说它NSMutableDictionary但是当它NSStringFromClass([rowDict class])叫它时说__NSDictionaryM!
为什么会这样?我检查标题__NSDictionaryM和Xcode导航到NSMutableDictionary(?).我无法创建对象__NSDictionaryM.
顺便说一句,我需要做些什么NSStringFromClass才能获得更换NSMutableDictionary?