Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
No title
WKWebView allowsBackForwardNavigationGestures属性作用是设置手势前进后退,若需要单独控制前进或者后退则需要对该属性进行分解。分析发现WKWebView的前进后退是由两个UIScreenEdgePanGestureRecognizer (UIRectEdgeLeft、UIRectEdgeRigth) 手势来控制的,在allowsBackForwardNavigationGestures SET 操作时候进行了手势的增加删除(删除手势并且手势的target会被置nil)。并不是单纯的enabled设置。
找到手势就好办了,创建一个AYWKWebView 继承 WKWebView
用NS_UNAVAILABLE宏禁用allowsBackForwardNavigationGestures,并且定义两个分解属性在WebView init时候调用super.allowsBackForwardNavigationGestures = YES; (self.allowsBackForwardNavigationGestures已经被禁用),重写- ...
No title
Xocde Developer Tools Access 提示处理办法
终端内执行DevToolsSecurity –status 查看状态,,如果现实状态为disable,就会出现我们碰到的问题,我们只需要把状态改为
DevToolsSecurity –enable.就可以解决这个问题
解决方案:
打开终端输入下边命令:
DevToolsSecurity –status 查看状态
DevToolsSecurity –enable 输入密码,修改为enable,即可用
DevToolsSecurity –disable 输入密码,修改为disable,即关闭
No title
xcode 运行真机报 bitcode bundle could not be generated1.联系第三方框架的提供者, 让他们支持bitcode,这个执行起来有难度。2.要么在项目中将bitcode设为No,可以在”Build Settings”->”Enable Bitcode”选项中看到这个
![image-20230109100727377](/Users/david/Library/Application Support/typora-user-images/image-20230109100727377.png)
No title
重新认识id 以及 Classid:类 class:对象我们首先写一个Class去看系统的 API:
1typedef struct objc_class *Class;
这时我们可以看到下面有个id 类型的结构体,并且里面只有一个Class类型的指针isa:
1234typedef struct objc_object *id; struct objc_object { Class _Nonnull isa OBJC_ISA_AVAILABILITY;};
我们在来看一下objc_class 的结构体里面有什么:
12345678910111213141516struct objc_class { Class _Nonnull isa OBJC_ISA_AVAILABILITY; //元类指针#if !__OBJC2__ //这个下面的现在已经不用了!!! Class _Nullable super_class ...
No title
UILabel 如何设置按照字节换行1tipLabel.lineBreakMode = NSLineBreakByCharWrapping;
12345678typedef NS_ENUM(NSInteger, NSLineBreakMode) { NSLineBreakByWordWrapping = 0, // Wrap at word boundaries, default NSLineBreakByCharWrapping, // Wrap at character boundaries NSLineBreakByClipping, // Simply clip NSLineBreakByTruncatingHead, // Truncate at head of line: "...wxyz" NSLineBreakByTruncatingTail, // Truncate at tail of line: "abcd..." NSL ...
No title
xib添加手势后报错:-[UITapGestureRecognizer setFrame:]: unrecognized selector sent to instance xxx…主要原因如下:
1234(instancetype)mineHeaderView{ return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] lastObject];}
添加手势后, 以上的创建对象方法就不可以通过lastObject来获取了, 因为获取到的是最后添加的手势对象, 所以才会出现这个错误
解决方法:
将lastObject改为firstObject即可..
No title
获取当前时间12345NSDate *date = [NSDate date];NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//获取当前时间日期展示字符串 如:2019-05-23-13:58:59NSString *str = [formatter stringFromDate:date];
No title
先说一个大家都熟悉的 SEL
ID 就是```SEL```类型的。我们需要注意的是,只要方法的名字和参数序列完全相同,那么它们的 ID编号就是相同的。(这里我先提出个问题,既然```SEL```是方法的唯一标识,那不同的类调用名字相同的方法怎么办呢?稍后解答。。。)1>#####常见的几种方法来获取/创建选择器:
SEL aSel = @selector(didReceiveMemoryWarning);SEL a_sel = NSSelectorFromString(@”didReceiveMemoryWarning”);SEL a_Sel = sel_registerName(“didReceiveMemoryWarning”);
1打印结果:
[5192:325263] 0x1214054bc___0x1214054bc___0x1214054bc
1SEL的操作函数:
// 比较两个选择器BOOL sel_isEqual ( SEL lhs, SEL rhs );//判断方法名是否映射到某个函数实现 ...