{"id":372,"date":"2015-03-16T12:18:12","date_gmt":"2015-03-16T04:18:12","guid":{"rendered":"http:\/\/www.yusian.com\/blog\/?p=372"},"modified":"2016-07-14T22:53:48","modified_gmt":"2016-07-14T14:53:48","slug":"%e5%a6%82%e4%bd%95%e9%81%8d%e5%8e%86%e5%af%b9%e8%b1%a1%e7%9a%84%e6%96%b9%e6%b3%95%e3%80%81%e5%b1%9e%e6%80%a7%e5%8f%8a%e5%af%b9%e5%ba%94%e5%80%bc","status":"publish","type":"post","link":"https:\/\/www.yusian.com\/blog\/project\/2015\/03\/16\/121812372.html","title":{"rendered":"\u5982\u4f55\u904d\u5386\u5bf9\u8c61\u7684\u65b9\u6cd5\u3001\u5c5e\u6027\u53ca\u5bf9\u5e94\u503c"},"content":{"rendered":"<pre lang=\"objc\" line=\"1\">\/\/\n\/\/? NSObject+SA.m\n\/\/ \n\/\/\n\/\/? Created by yusian on 15-3-16.\n\/\/? Copyright (c) 2015\u5e74 Sian. All rights reserved.\n\/\/\n?\n#import \"NSObject+SA.h\"\n#import <objc\/runtime.h>\n?\n@implementation NSObject (SA)\n?\n\/* \u83b7\u53d6\u5bf9\u8c61\u7684\u6240\u6709\u5c5e\u6027\uff0c\u4e0d\u5305\u62ec\u5c5e\u6027\u503c *\/\n- (NSArray *)getAllProperties\n{\n????u_int count;\n????objc_property_t *properties? =class_copyPropertyList([self class], &count);\n????NSMutableArray *propertiesArray = [NSMutableArray arrayWithCapacity:count];\n????for (int i = 0; i<count; i++)\n????{\n????????const char* propertyName =property_getName(properties[i]);\n????????[propertiesArray addObject: [NSString stringWithUTF8String: propertyName]];\n????}\n????free(properties);\n????return propertiesArray;\n}\n?\n\/* \u83b7\u53d6\u5bf9\u8c61\u7684\u6240\u6709\u5c5e\u6027 \u4ee5\u53ca\u5c5e\u6027\u503c *\/\n- (NSDictionary *)getAllPropertiesAndValues\n{\n????NSMutableDictionary *props = [NSMutableDictionary dictionary];\n????unsigned int outCount, i;\n????objc_property_t *properties = class_copyPropertyList([self class], &#038;outCount);\n????for (i = 0; i<outCount; i++)\n????{\n????????objc_property_t property = properties[i];\n????????const char* char_f =property_getName(property);\n????????NSString *propertyName = [NSString stringWithUTF8String:char_f];\n????????id propertyValue = [self valueForKey:(NSString *)propertyName];\n????????if (propertyValue) [props setObject:propertyValue forKey:propertyName];\n????}\n????free(properties);\n????return props;\n}\n?\n\/* \u83b7\u53d6\u5bf9\u8c61\u7684\u6240\u6709\u65b9\u6cd5 *\/\n-(void)printMothList\n{\n????unsigned int mothCout_f =0;\n????Method* mothList_f = class_copyMethodList([self class],&#038;mothCout_f);\n????for(int i=0;i<mothCout_f;i++)\n????{\n????????Method temp_f = mothList_f[i];\n\/\/??????? IMP imp_f = method_getImplementation(temp_f);\n\/\/??????? SEL name_f = method_getName(temp_f);\n????????const char* name_s =sel_getName(method_getName(temp_f));\n????????int arguments = method_getNumberOfArguments(temp_f);\n????????const char* encoding =method_getTypeEncoding(temp_f);\n????????SALog(@\"\u65b9\u6cd5\u540d\uff1a%@,\u53c2\u6570\u4e2a\u6570\uff1a%d,\u7f16\u7801\u65b9\u5f0f\uff1a%@\",[NSString stringWithUTF8String:name_s],\n??????????????arguments,[NSString stringWithUTF8String:encoding]);\n????}\n????free(mothList_f);\n}\n?\n@end<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\/\/ \/\/? NSObject+SA.m \/\/ \/\/ \/\/? Created by yusian on 15-3-16. \/\/? Copyright (c) 2015\u5e74 Sian. All rights reserved. \/\/ ? #import &#8220;NSObject+SA.h&#8221; #import ? @implementation NSObject (SA) ? \/* \u83b7\u53d6\u5bf9\u8c61\u7684\u6240\u6709\u5c5e\u6027\uff0c\u4e0d\u5305\u62ec\u5c5e\u6027\u503c *\/ &#8211; (NSArray *)getAllProperties { ????u_int count; ????objc_property_t *properties? =class_copyPropertyList([self class], &#038;count); ????NSMutableArray *propertiesArray = [NSMutableArray arrayWithCapacity:count]; ????for (int i = 0; i<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[17],"class_list":["post-372","post","type-post","status-publish","format-standard","hentry","category-project","tag-skill"],"_links":{"self":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/comments?post=372"}],"version-history":[{"count":0,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/372\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/media?parent=372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/categories?post=372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/tags?post=372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}