OC 语法基础一
1.判断字符串开头 或 结尾
测试字符串是否以aString开始
- (BOOL)hasPrefix:(NSString *)aString;
测试字符串是否以aString结尾
- (BOOL)hasSuffix:(NSString *)aString;
2.有子类的对象AClass 在 获取 单例 的时候 考虑 用 instancetype 而不是 自身AClass。
3.通过 类名称 判断一个类
[self isKindOfClass:NSClassFromString(@"ViewController")]
4.@property int age; //编译器自动解释成 int age的get/set方法 的声明。
5.SEL 对象即一个selector对象,保存一个方法的地址。
例子: SEL say1 = @selector(say); //创建say方法的SEL对象 SEL say2 = NSSelectorFromString(@"say"); //从方法名字符串 创建SEL对象 - (void) say { NSLog(@"调用了say方法"); }
6.常见打印log
NSLog(@"------------------------------------------------"); SEL s = _cmd; // 每一个方法内都有一个_cmd,表示方法自身 NSLog(@"当前方法(NSStringFromSelector):%@", NSStringFromSelector(s)); //NSStringFromSelector 返回方法名 NSLog(@"所在文件完整路径(__FILE__):%s", __FILE__); NSLog(@"所在文件名:%@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent]); NSLog(@"当前行号(__LINE__):%d", __LINE__); NSLog(@"当前方法签名(__func__):%s", __func__); NSLog(@"当前方法签名(__PRETTY_FUNCTION__):%s", __PRETTY_FUNCTION__);//在c++代码中,会包含类型的详细信息 NSString* clz = NSStringFromClass([Person class]); //返回一个Class对象的类名 NSLog(@"当前类名(NSStringFromClass):%@", clz); NSLog(@"%@", [NSThread callStackSymbols]);// 返回当前调用栈信息
解决问题的能力很关键~(iOS开发交流群:219926126)