_cmd、objc_getAssociatedObject、objc_setAssociatedObject _cmd、objc_getAssociatedObject、objc_setAssociatedObject参数含义//关联对象 objc_setAssociatedObject(self, @selector(btnAction:), block, OBJC_ASSOCIATION_RETAIN_NONATOMIC); // self 关联的类, //key:要保证全局唯一,key与关联的对象 2021-12-25 OC
NSInvocation 基本用法 NSInvocation可以直接调用某个对象的消息方式有两种: performSelector:withObject; NSInvocation。但是对于 >2 个的参数或者有返回值的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作。 - (void)viewDidLoad { [super viewD 2021-12-05 OC
OC正则匹配 OC 正则匹配NSError* error = NULL; NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"(encoding=\")[^\"]+(\")" options:0 error:&error]; NSString* 2021-11-30 OC
KVC 和 KVO KVC和KVOKVC Key-Value Coding,键值编码,一种键值对间接访问机制,通过属性名称字符串间接访问属性。 directly access a property (get set) 在某些情况下可以简化代码 #pragma mark - KVC // 相当于 [myAccount setCurrentBalance:@(100.0)]; [myAccount setVa 2021-11-09 OC
iOS 圆角及性能 iOS 圆角及性能普通圆角添加方式UIImageView *avatarImageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; avatarImageView.backgroundColor = [UIColor redColor]; avatarImageView.clipsToBounds = 2021-11-07 OC
NSKeyedArchiver 归档 NSKeyedArchiver 归档NSKeyedArchiver 和 NSUserDefault 的区别 NSUserDefault 只能存储基本数据类型,如 NSInteger NSString NSArray 但像 UIImage、自定义类就无法存入 NSKeyedArchiver 可以将各种类型的对象存储到文件中,而不仅仅是字符串、数组和字典类型,利用NSKeyedAarchiver 类创 2021-11-03 OC
Keychain 增删改查 Keychain 增删改查- (void)viewDidLoad { [super viewDidLoad]; BOOL succeed = [self keychainSaveData:@"123456789" withAccountIdentifier:@"trigger" andServiceIdentifier:@&quo 2021-11-01 OC
App Tracking Transparency获取IDFA iOS 14.5 以后 App Tracking Transparency 获取 IDFAiOS 14.5以后的版本,想要允许其跟踪或访问其设备的广告标识符(IDFA),需使用AppTrackingTransparency info.plist 文件此处自定义提示内容为必填项,也可以参考提示模版 代码判断#import <AppTrackingTransparency/AppTracking 2021-10-31 OC
load和initialize区别 load 和 initialize 区别1、load 是根据函数地址直接调用2、initialize 是通过 objc_msgSend 调用调用时刻1、load 是 runtime 加载类、分类的时候调用2、initialize 是类第一次接收到消息的时候调用 每接收到一次消息,只会调用一次 initialize 若子类未实现 initialize 方法, 会调用父类的 initialize 方 2021-10-27 OC
Fat 脚本 Fat 脚本 用于 xcode build 时自动生成可被真机和模拟器同时使用的 .a 文件 if [ "${ACTION}" = "build" ] then #要build的target名 target_Name=${PROJECT_NAME} echo "target_Name=${ta 2021-10-13 OC