反射类属性方法

编程入门 行业动态 更新时间:2024-10-27 17:21:02

<a href=https://www.elefans.com/category/jswz/34/1765951.html style=反射类属性方法"/>

反射类属性方法

广告数据实体:
// AdModel.h
@interface AdModel: NSObject
{
}@property (nonatomic, assign) int       row;
@property (nonatomic, retain) NSString *picture;@end
// AdModel.m
@implementation AdModel@synthesize row      = _row;
@synthesize picture  = _picture;- (void)dealloc
{[_picture release];[super dealloc];
}@end


用SQLiteHelper将数据库内容返回NSDictionary

然后通过反射类属性将数据保存到实体集合



// NSObject+Add- (NSArray *)getPropertyListByClass: (Class)clazz
{u_int count; objc_property_t *properties  = class_copyPropertyList(clazz, &count);NSMutableArray *propertyArray = [NSMutableArray arrayWithCapacity:count];for (int i = 0; i < count ; i++) { const char* propertyName = property_getName(properties[i]);[propertyArray addObject: [NSString  stringWithUTF8String: propertyName]];} free(properties);return propertyArray;
}


#define AD_INFO_QUERY  \
@"SELECT * FROM ad ORDER BY row"- (NSArray *)queryAdInfo
{    NSMutableArray *adEntityArray   = nil;NSUInteger     count            = [[_sqliteHelper countRowsAtTable: @"ad"] intValue];NSString     *conn   = [NSString stringWithFormat: AD_INFO_QUERY];SQLiteHelper *obj    = [_sqliteHelper getQuery: conn];if (obj != nil){adEntityArray         = [NSMutableArray arrayWithCapacity: count];NSArray *propertyList = [self getPropertyListByClass: [EntityAdInfo class]];for (NSMutableDictionary *dic in obj){EntityAdInfo *adEntity = [[EntityAdInfo alloc] init];for (NSString *key in propertyList){[adEntity setValue: [dic objectForKey: key] forKey: key];}[adEntityArray addObject: adEntity];[adEntity release];}}return adEntityArray;
}

更多推荐

反射类属性方法

本文发布于:2024-02-16 23:44:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1691848.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:反射   方法   类属

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!