| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- //
- // NSObject+loadPadClass.m
- // CommonLibrary
- //
- // Created by Alexi Chen on 2/28/13.
- // Copyright (c) 2013 AlexiChen. All rights reserved.
- //
- #import "NSObject+loadPadClass.h"
- #import "FanweDeviceMacro.h"
- @implementation NSObject (loadClass)
- - (void)configParams:(id)params
- {
- // do nothing
- }
- + (Class)getPadClass:(Class)phone
- {
- if (isIPad())
- {
- NSString *newClassDesc = [phone description];
-
- NSString *padNewClassDesc = [NSString stringWithFormat:@"%@_Pad", newClassDesc];
-
- Class padNewClass = NSClassFromString(padNewClassDesc);
-
- if (padNewClass)
- {
- return padNewClass;
- }
- else
- {
- return phone;
- }
- }
- else
- {
- return phone;
- }
- }
- //加载判断Phone的或者pad的文件
- + (id)loadClass:(Class)newClass
- {
- id ret = nil;
- if (isIPad())
- {
- NSString *newClassDesc = [newClass description];
-
- NSString *padNewClassDesc = [NSString stringWithFormat:@"%@_Pad", newClassDesc];
-
- Class padNewClass = NSClassFromString(padNewClassDesc);
-
- if (padNewClass)
- {
- ret = [[padNewClass alloc] init];
- }
- else
- {
- ret = [[newClass alloc] init];
- }
- }
- else
- {
- ret = [[newClass alloc] init];
- }
- return CommonReturnAutoReleased(ret);
- }
- + (id)loadClassFromNib:(Class)newClass
- {
- id ret = nil;
- if (isIPad())
- {
- NSString *newClassDesc = [newClass description];
-
- NSString *padNewClassDesc = [NSString stringWithFormat:@"%@_Pad", newClassDesc];
-
- Class padNewClass = NSClassFromString(padNewClassDesc);
-
- if (padNewClass)
- {
- ret = [[padNewClass alloc] initWithNibName:padNewClassDesc bundle:[NSBundle mainBundle]];
- }
- else
- {
- ret = [[newClass alloc] initWithNibName:newClassDesc bundle:[NSBundle mainBundle]];
- }
- }
- else
- {
- ret = [[newClass alloc] initWithNibName:[newClass description] bundle:[NSBundle mainBundle]];
- }
- return CommonReturnAutoReleased(ret);
- }
- + (id)loadClass:(Class)newClass withParams:(id)params
- {
- id instance = [NSObject loadClass:newClass];
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
- if ([instance respondsToSelector:@selector(configParams:)]) {
- [instance performSelector:@selector(configParams:) withObject:params];
- }
- #pragma clang diagnostic pop
- return instance;
- }
- + (id)loadClass:(Class)newClass withParams:(id)params withConfigSelector:(SEL)selector
- {
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
- id instance = [NSObject loadClass:newClass];
- if ([instance respondsToSelector:selector]) {
- [instance performSelector:selector withObject:params];
- }
- return instance;
- #pragma clang diagnostic pop
- }
- @end
|