编程技巧 - elegant - 1
来源:互联网 发布:linux用yum安装rpm包 编辑:程序博客网 时间:2024/05/16 09:17
收录一些优雅的写法:
1.
- (BOOL)resignFirstResponder{ [self.textView resignFirstResponder]; return [super resignFirstResponder];}
因为resignFirstResponder是默认返回YES的,所以super的时候做了这个操作。
另外在这个方法里面更新一些控件的状态。苹果说得很清楚了!
2.
NSString * tmpGameID = isStringEmpty(gameID)?@"":gameID;
判空,不用写啥if啦
3.
BOOL result = [SingleAPIProtal bundleLoadDylibWithPath:framework];// 定义布尔判空.+ (BOOL)bundleLoadDylibWithPath:(NSString *)path // 封装一个函数体外的判空方法.{ NSError *err = nil; NSBundle *bundle = [NSBundle bundleWithPath:path]; if ([bundle loadAndReturnError:&err]) { NSLog(@"[SingleAPIProtal bundleLoadDylibWithPath:] bundle load framework success."); return YES; } else { NSLog(@"[SingleAPIProtal bundleLoadDylibWithPath:] bundle load framework err:%@",err); return NO; }}
4.
DTCXMLResponse
这种命名也是挺帅的。
5.
#define SYSTEM_VERSION_IS_8_0_X ([[[UIDevice currentDevice] systemVersion] hasPrefix:@"8.0"])
6.
判断布尔的时候,来个这些操作也是不错的
- (BOOL)labelShouldScroll{ BOOL stringLength = ([self.subLabel.text length] > 0); if (!stringLength) { return NO; } BOOL labelTooLarge = ([self subLabelSize].width + self.leadingBuffer > self.bounds.size.width); return (!self.labelize && labelTooLarge);}
BOOL trailingFadeNeeded = (!self.labelize || self.labelShouldScroll);
7.
宏来定义多个表达式
#define INSTANCE_XSDK() Class XSDKClass = NSClassFromString(@"XSDK"); \ SEL instanceXSDKSel = NSSelectorFromString(@"instanceXSDK"); \ id instanceXSDK = ((id(*)(id, SEL))objc_msgSend)(XSDKClass, instanceXSDKSel);
包括这种:
ACKit_EXTERN id<ACAccessChannel> ACStandardChannel();
看起来超级复杂,其实也是前面做了一个宏处理而已。让代码看起来更加精简。
8.
if (VERSION_FLOAT >= 7.0 && [tipText respondsToSelector:@selector(sizeWithAttributes:)]) { }
0 0
- 编程技巧 - elegant - 1
- 编程技巧 - elegant - 2
- 编程技巧 - elegant - 3
- 编程技巧 - 封装技巧 - 1
- Elegant Construction
- Internet编程技巧1
- IE编程技巧1
- Internet编程技巧1
- VC编程技巧1 .
- 编程技巧 - 1
- 编程技巧 - NSString - 1
- 编程技巧 - 适配技巧 - 1
- 编程技巧搜集(1)
- Visual C++编程技巧 (1)
- Java网络编程技巧1
- 编程技巧
- 编程技巧
- 编程技巧
- Android 第三天重置版
- next_permutation函数
- win10怎么安装JDK8,怎么配置JDK8的环境变量
- sizeof运算符解析
- [基础数位DP] HDU2089 不要62 HDU3555 Bomb
- 编程技巧 - elegant - 1
- win7_oracle11g_64位连接32位PLSQL_Developer
- MyBatis报Parameter not found的Exception 处理
- 面向对象设计六大原则
- LeetCode : Reverse Integer [java]
- 着弹点
- 整理Unity 编辑器的相关知识
- 中国式社交
- HDU 2512 一卡通大冒险 (集合划分)