非“ @objc”方法不满足“ @objc”协议的可选要求
概述:我有一个协议P1,它提供了Objective-C可选功能之一的默认实现。当我提供可选功能的默认实现时,会出现警告编译器警告:Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate'...
2024-01-10在Photoshop中为黑白照片着色的2种简单方法
当扫描黑白图像时,图像模式将设置为黑白(灰度)并且不允许您调整任何颜色。必须先更改颜色模式,然后才能使用任何颜色。要更改颜色模式,请按照以下步骤操作。点击图片点击模式最后点击RGB颜色完成上述三个步骤后,您可以在照片或图像中使用所有可用的颜色。Adobe Photoshop 的最佳功能之一是它能够为黑白照片着色。使用 Photoshop,您可以为整张照片添加颜色,或者仅“绘制”图像...
2024-02-15vue echarts实现柱状图动态展示
本文实例为大家分享了vue echarts实现柱状图动态展示的具体代码,供大家参考,具体内容如下轮播图形式展现<template> <div class="dan"> <div id="scalesize" :style="{width: '100%', height: '100%'}"></div> </div></template><script>import echarts from "echarts";export default { data() { return { ...
2024-01-10ScrollMe 基于 jQuery 滚动动画插件
ScrollMe 是一个页面添加简单的滚动效果的 jQuery 插件,当你向下滚动页面时,ScrollMe 可以对页面元素进行轴标扫描、旋转、转换和改变不透明度,从而让整个页面动感起来。ScrollMe非常容易使用,它不需要写 JS 代码,只需在元素中写上属性就可以了,为什么只有这些属性?因为浏览器可以快速地为它们...
2024-01-10SQL之各种join小结详细讲解
SQL Left Join, Right Join, Inner Join, and Natural Join 各种Join小结在SQL语言中,存在着各种Join,有Left Join, Right Join, Inner Join, and Natural Join等,对于初学者来说肯定一头雾水,都是神马跟神马啊,它们之间到底有着怎样的区别和联系呢,我们先用一张图片来说明:上面这张图很好的阐释了Left Join, Right Join, Inner...
2024-01-10Nginx中部署Angular项目遇到的坑巨坑
网上搜索Angular 项目编译后部署到 Nginx 中的方法,多数文章都介绍了需要在 Nginx 中的配置文件的 location 中特别指定跳转到首页来避免刷新导致404的问题,那么完整的server 代码是:server { listen 80; server_name 192.168.190.131; #sendfile on; #charset koi8-r; access_log /var/log/nginx/host.access.log main; location / { root /...
2024-01-10vue实现web在线聊天功能
本文实例为大家分享了vue实现web在线聊天的具体代码,供大家参考,具体内容如下最终实现的效果实现过程无限滚动窗体的实现之前已经介绍过,这里就不在赘述了,不清楚的可以通过文档前文的传送门进行查看。实时在线聊天主要功能点滚动到两天窗体顶部,自动加载历史跟多信息,数据加载...
2024-01-10vue实现一个矩形标记区域(rectangle marker)的方法
代码地址:vue-rectangle-marker一、前言一些cms系统经常会用到区域标记功能,所以写了个用vue实现的矩形标记区域,包含拖拽、放大缩小、重置功能。二、实现结果1.初始2.标记三、代码实现<template> <div class="rectangle-marker"> <div class="mark-wrap"> <img ref="backImg" :src="imgUrl" class="img-responsive" alt="响应式...
2024-01-10vue-cli3自动消除console.log()的调试信息方式
在vue-cli3里面已经有这个功能了,只需要开启这个功能就行了,默认是关闭的1、找到生产环境的配置文件2、然后找到 UglifyJsPlugin 这个插件添加一行代码补充知识:Vue cli3 实现去除console.log 去除控制台输出 下载移除控制台输出的包npm install babel-plugin-transform-remove-console --save-dev新建babel.config.jsl...
2024-01-10vue-cli4使用全局less文件中的变量配置操作
目录结构如下:需求: 在Navgation.vue中使用global.less中的变量vue-cli3的配置方法如下:传送门vue-cli4的配置方法如下:安装 style-resources-loadernpm i style-resources-loader -D在 vue.config.js 中加上如下配置,没有则创建该文件,文件名不能改,如下:// vue.config.jsconst path = require('path') module.exports = { lintOnS...
2024-01-10Java中集合关系图及常见操作详解
下面是一张下载的Java中的集合类型的继承关系图,便于正确的理解和使用相应的集合类型。几个面试常见问题:1.Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别? A:Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。2.Q:大致讲解java集合的体...
2024-01-10Java中ArrayList的removeAll方法详解
本文介绍的是关于Java中ArrayList的removeAll方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:在开发过程中,遇到一个情况,就是从所有骑手Id中过滤没有标签的骑手Id(直接查询没有标签的骑手不容易实现),List<Integer> allRiderIdList = new ArrayList(); // 所有的骑手,大致有23W数据Li...
2024-01-10Spring Boot实现邮件发送功能
本文实例为大家分享了Spring Boot邮件发送功能的具体代码,供大家参考,具体内容如下1、引入依赖 <!-- mail依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>2、参数配置在application.properties中配置邮件相关的参数spring.thymeleaf.cache=fal...
2024-01-10java 代理模式及动态代理机制深入分析
java 代理模式及动态代理机制深入分析代理设计模式 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理模式的作用是:为其他对象提供一种代...
2024-01-10Java中使用JavaMail多发邮件及邮件的验证和附件实现
多发和用户验证下面先来介绍如何实现将邮件发送给多个收件人和如何利用Authenticators对象实现用户验证。 指定收件人的时候,我们可以有两种方法来指定。上篇博客是在发送邮件的时候临时指定收件人,其实还可以在Message对象中指定。message.addRecipient(Message.RecipientType.TO,new InternetAddress(” 9958125...
2024-01-10Spring 与 Log4J 进行动态日志配置切换
引言: 在开发与生产环境中,我们有时候需要对日志的配置进行动态切换,要调试、监控和检查系统的运行时信息。 一般有两种方法 1、通过 Spring 的 Log4jConfigListener 在启动时开启定时器进行定时加载配置文件 2、通过 JMX 动态控制 以上可以从我的《利用Spring来管理控...
2024-01-10Struts教程-Struts模块化编程教程
1、前言 STRUTS是标准的"模型2"的WEB应用框架,其中的ActionServlet代表了"模型2"MVC设计模式中的"控制器" .STRUTS应用程序一般使用JSP代码生成用户界面,这些代码不包括任何商业逻辑,代表了MVC中的“VIEW”部分。需要执行商业逻辑的用户界面中的表单或超链将会由"控制器" ActionServlet接收和处理。...
2024-01-10C/C++如何合并PDF文件在一起?详细源码
在以前的文章中,我们已经讨论过这样一个事实: pdf是与内部或外部合作伙伴共享信息时使用的理想格式。然而,如果你需要同时共享多个PDF文档,将类似的文档合并到一个文件中会很有好处。如果你正在分享或收集订单、合同或发票,这一点尤其正确;将相关文档存储在一个文件中将极大地改善你的...
2024-01-10.NET高级代码审计(第六课) DataContractSerializer反序列化漏洞
原文来自安全客,作者:Ivan1ee@360云影实验室原文链接:https://www.anquanke.com/post/id/175796 相关阅读:《.NET 高级代码审计(第一课)XmlSerializer 反序列化漏洞》《.NET 高级代码审计(第二课) Json.Net 反序列化漏洞》《.NET高级代码审计(第三课)Fastjson反序列化漏洞》《.NET高级代码审计(第四课) JavaS...
2024-01-10wampserver路径配置问题
我点击项目的时候显示路径不对,怎么修改?例如:点击wordpress的文件夹是localhost/wordpress回答:wamp\www\index.php:338$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://localhost/' : '').$file.'">'.$file.'</a></li>';...
2024-01-10Clion无法自动补全C函数
听说jetbrains出品必属精品,于是就下载了一个clion来用,但是发现怎么这个ide不能函数补全啊?这不应该啊codebooks都有这个功能,可能是我没配置好?如下图,有了函数声明,我写定义的时候不能补全(即使我按了补全快捷键Ctrl+Space/Ctrl+Shift+Space)搜了半天没找到,于是我就斗胆来SF问这个略显弱智的问...
2024-01-10在这里打印输出++*p的值应该是多少?
#include <stdio.h>int main(void){ int a=3,*p=&a; printf("++*p=%d,(*p)++=%d",++*p,(*p)++); return 0;} 我觉得执行结果应该是++p=4,(p)++=3因为先取p 再自加 再打印输出,请问为什么输出结果是++p=5回答:不知道题主使用的是哪个编译器。但是如果楼主使用的是 vc6 的话,可能就没有这个问题了。因为用 vc6 来编译执...
2024-01-10