自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

VictorZhang

学习在于点点滴滴的积累,乐享其中,为此不疲。

  • 博客(463)
  • 资源 (26)
  • 问答 (28)
  • 收藏
  • 关注

原创 2020年12月 C/ObjC/Swift混合编写开发的原理/使用/注意事项

1.Swift 5.32.Xcode 12.00x00 为什么要用Swift?1.Swift是趋势,Apple推荐,关键是5.0版本的ABI语法已经成熟固定了2.支持泛型、Optional、guard、differ、类型自动推导3.相同的功能,Swift编写的代码量比ObjC要少一半,运行效率比ObjC高2.6倍4.开源、跨平台,等等0x01 开发篇问1:在ObjC代码里如何调用Swift?在.h/m文件里导入头文件,例如:ProductModuleName叫做Apple,那么头文

2020-10-19 11:07:52 569

原创 unix:///tmp/supervisor.sock no such file 使用supervisorctl status时

错误信息:unix:///tmp/supervisor.sock no such file解决方案尝试以下这些https://www.jianshu.com/p/3fe84e259ef9supervisord -c /etc/supervisord.confsupervisorctl或者这个https://github.com/Supervisor/supervisor/issues/480

2020-09-08 11:38:48 307

原创 牛客网算法题:给定一个字符串,计算从做到右的字符出现的个数

题目:给定一个字符串,计算出从做到右的字符出现的个数忽略字符计算后个数为1的数字例如原始输入字符串:"aabccccaaa"期望输出: “a2bc4a3”解释:从左到右,a出现了2次,记为a2;b出现了1次,记为b;c出现了4次,记为c4;再a出现了3次,记为a3。结果就是:a2bc4a3以Swift语言实现如下class TestA: NSObject { private var lowerLetters: [String: Int] = ["a":0, "b

2020-08-31 11:47:20 505

原创 pod install和pod update的区别(官方解释,通俗易懂)

这是官方文档 英语好的可以自己看,我这里给你总结下pod install就是说,当你在项目中的Podfile配置文件中添加、删除、或者更新版本号时使用,也就是用来安装新Pod,删除pod,或者根据你设置的pod版本号来安装安装完后,会自动生成Podfile.lock文件,该文件记录着Podfile配置的所有Pod的版本信息,依赖库信息,和pod库的checksum(校验码)所以当你下次运行pod install时,已经安装过的pod就不会再次去下载安装,也不会更新已有的pod库。pod updat

2020-08-11 12:44:05 4679

原创 iOS启动优化/耗电优化

一、启动优化1.pre-main阶段我们可以通过苹果提供了XCode内建的测量方法,1.点击项目名称2.Edit scheme...3.左侧Run4.中间顶部菜单Auguments5.在Environment Variables中添加一个环境变量DYLD_PRINT_STATISTICS,并设为 1再次运行项目,会得到以下输出主要分为3个加载阶段1.加载应用的可执行文件(app自身的所有.o文件集合)2.加载动态链接器dyld(dynamic loader一个专门用来加载动态链

2020-08-10 13:23:21 626 1

原创 C语言旋转数组-转圈打印数组

// 旋转数组void rotateArray(size_t rows, size_t cols, size_t arr[4][4]) { size_t rotated[rows][cols]; for (size_t i = 0; i < rows; i++) { for (size_t j = 0; j < cols; j++) { // rotated[i][j] = a[n - j - 1][i]; // 顺时针翻转

2020-08-06 20:57:50 1050

原创 单链表的翻转

单链表的翻转// 链表定义struct SingleLinkedList { int value; struct SingleLinkedList *next;};// 打印链表中的数据void printAllNodes(struct SingleLinkedList *head) { printf("%d \t", head->value); if (head->next == NULL) { return; } p

2020-08-06 20:55:35 237

原创 二叉树的遍历/递归/非递归/翻转

二叉树的定义// 定义一个二叉树节点struct BiTreeNode { int value; struct BiTreeNode *left; struct BiTreeNode *right;};先序遍历 (递归的形式)void preOrderTraversal(struct BiTreeNode *node) { if (node != NULL) { printf("%d", node->value); // 先序遍历

2020-08-06 20:45:36 245

原创 iOS卡顿检测方案

方案一:基于RunLoop主线程绝大部分计算或者绘制任务都是以Runloop为单位发生。单次Runloop如果时长超过16ms,就会导致UI体验的卡顿。那如何检测单次Runloop的耗时呢?Runloop的生命周期及运行机制虽然不透明,但苹果提供了一些API去检测部分行为。我们可以通过如下代码监听Runloop每次进入的事件:- (void)setupRunloopObserver{ static dispatch_once_t onceToken; dispatch_once(&a

2020-08-06 16:03:09 1301

原创 iOS的文件校验码生成 - ObjC编写

一般我们比较文件的完整性,就是对文件进行哈希计算,通常就是MD5或者SHA256或者SHA1计算,如果生成的结果字符串是一样的,则表明文件没有被篡改比如我们在网络上下载的安装包,下载时都会提示MD5或者SHA1的校验码是多少?有没有想过校验码是如何生成的了?以下就是用Objective-C来对文件计算checksum即校验码是否 服务器端存储的一致,如果是一致的,则表示文件是完整的#import "FileChecksumUtil.h"#import <CommonCrypto/CommonDi

2020-08-05 21:30:34 371

原创 强行在CentOS上kill python进程 unix:///tmp/supervisor.sock

问题:unix:///tmp/supervisor.sock解决方案:echo_supervisord_conf > /etc/supervisord.confsudo supervisord -c /etc/supervisord.confsudo supervisorctl statushttps://stackoverflow.com/questions/20067116/supervisorctl-error-unix-var-run-supervisord-sock-refuse

2020-07-24 23:59:28 983

原创 显示macOS的隐藏文件

在指定的目录下按下以下快捷键,即可显示所有的隐藏文件CMD + SHIFT + .

2020-07-15 11:07:30 229

原创 iOS的App的崩溃收集和类型解释 ObjC/C/Swift语言都可以拦截

在Unix系统中标准的6种信号:SIGABRT: 表示程序异常终止,英语单词即Signal AbortSIGFPE: 表示浮点数异常错误,英语单词即Signal Floating Point ExceptionSIGILL: 表示无效指令/操作,英语单词即Signal IllegalSIGINT: 表示交互式注意请求发送到了程序引起了中断,英语单词Signal InterruptSIGSEGV: 表示无效的内存访问,英语单词是Segmentation ViolationSIGTERM: 表示终

2020-07-08 16:02:11 1370

原创 FFmpeg快速压缩,短视频秒播,视频流m3u8生成

FFMpeg快速压缩test.mp4是视频地址libx264表示视频编码格式为H.264crf 表示控制转码,18-28比较合理,18表示无损压缩,28表示有损的压缩,28压缩出来的视频会模糊test_compressed.mp4表示压缩后的视频路径ffmpeg -i test.mp4 -vcodec libx264 -crf 22 -preset veryfast -c:a copy test_compressed.mp4短视频秒播需要将视频的metadata前置,就可以让app中的播

2020-07-01 18:22:41 3396

原创 全球5大云计算厂商的全球部署的节点图

Google全球节点(没有非洲区域)https://cloud.google.com/about/locations/阿里巴巴全球节点(没有非洲区域)https://www.alibabacloud.com/zh/global-locations亚马逊AWS (在非洲开普敦,是2020年新推出的)https://aws.amazon.com/cn/about-aws/global-infrastructure/微软云(在南非洲西部和南非洲北部地区两个节点)https://azure.mi

2020-06-11 11:19:23 1897

原创 ERROR: Failed building wheel for pycrypto : CentOS

我的系统环境:CentOSPython环境:Python3问题:ERROR: Failed building wheel for pycrypto解决方案:在CentOS命令行里安装yum install gcc gcc-c++ python3-devel pycrypto其实之前我已经安装过python-devel,默认是Python2,而我用的是Python3环境,所以需要去安装python3-devel,如果你的项目是通过virtualenv管理包的,那就去激活你的virtualen

2020-05-27 11:15:35 4261

原创 AWS用Lambda搭建一个无服务的图片鉴黄Restful API,不超过10行代码

目的无需购买服务器搭建一个图片鉴黄接口 (Python语言)Lambda介绍 : https://aws.amazon.com/cn/lambda/AWS的Lambda控制台首页: https://console.aws.amazon.com/lambda/home图片鉴黄文档:https://docs.aws.amazon.com/zh_cn/rekognition/latest/dg/procedure-moderate-images.html1.创建函数选择第一个:从头开始创作 --&

2020-05-24 20:55:58 4828

原创 unix:///tmp/supervisor.sock no such file

执行以下命令sudo service supervisord restart

2020-05-07 19:57:45 216

原创 iOS 操作触感震动 tab点击震动 按钮点击震动

其实很简单,主要是系统提供的几种震动方式主要在这个AudioTool.framework里#import <AudioToolbox/AudioToolbox.h>一般震动AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);普通短震(类似3D Touch的 Peek 反馈 )AudioServicesPlaySyst...

2020-04-25 11:35:01 4455

原创 免费的Google翻译API接口

free-google-translateFree Google Translator API 免费的Google翻译,其中的破解思路主要来源于将 https://translate.google.cn 的web访问方式模拟成全部代码的形式来控制api的访问注意事项1.大量的相同IP请求会导致Google翻译接口返回 429 Too many requests建议处理方案:每一个app...

2020-04-23 22:17:32 47292 14

原创 iOS实现左侧滑动菜单

先来一个Demo实现地址:https://github.com/VictorZhang2014/LeftMenuDemo类似滴滴app再来个动画演示下左滑菜单主要实现功能的类文件是BDLeftMenuView.hBDLeftMenuView.m使用方法如果是Objective-C,先导入头文件#import "BDMainNavigationBar.h"如果是Swift和O...

2020-04-19 18:52:11 2313

原创 Xcode DeviceSupport iOS 13.4.1 (17E262)

下载地址:https://github.com/filsv/iPhoneOSDeviceSupport各种版本都有重启Xcode就好了

2020-04-15 19:41:17 6853 1

原创 我的新书《深度学习训练营 - 21天实战》出版了!!!

我把自己想象是一个软件、一段代码,今天的版本一定要比昨天好,明天的版本肯定会比今天好!— By 陆奇《深度学习训练营 - 21天实战》终于在疫情即将结束时出版了!非常感谢主编们以及出版社的相关负责人的辛勤付出!????衷心的感谢沈老师、郭教授、领导们、同事们、家人和朋友的支持与点评!????????在人工智能领域,很多时候,我们都是站在巨人的肩膀上做创新、搞发展、实现落地应用。深度学习领域最难啃的花书《深度学...

2020-04-12 15:19:29 1277 6

原创 HTTPS原理-使用-请求拦截-防止拦截-动态调试HTTP请求

HTTPS (全称:HyperText Transfer Protocol over Secure Socket Layer)Google 很早就使用了HTTPS,主要是为了保证用户的数据安全。 Google、Baidu、Facebook 、字节跳动这样的互联网巨头,都在广泛使用HTTPS搭建网站、接口、服务等, 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是程序员学习http...

2020-04-10 15:16:19 9658 1

原创 unix:///tmp/supervisor.sock no such file

supervisorctl 总是报错 unix:///tmp/supervisor.sock no such file解决方案Supervisor有一个issue里讲到了https://github.com/Supervisor/supervisor/issues/121https://github.com/Supervisor/supervisor/issues/376尝试一下命令即可...

2020-04-01 14:11:30 286

原创 最新H5网页分享到Twitter、Facebook带缩略图

Twitterhttps://twitter.com/intent/tweet?text=Work queue with Go and RabbitMQ by @masnun https://link.medium.com/5ayv7VMv04

2020-03-25 17:07:01 10708 2

原创 100%有效的安装brew和ffmpeg

第一步:安装HomeBrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"第二步:安装ffmpegbrew install ffmpeg查看ffmpeg

2020-03-11 22:25:21 4327

原创 Xcode 11无法成功安装Cocoapods的原因和解决方案: mkmf.rb can't find header files for ruby at xxx

错误信息mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h我主要是新买的macbook pro,安装了XCode 11,然后就遇到这个安装Cocoapods的错误,之前从来没有遇到过后来经...

2020-03-04 20:15:26 1874

原创 PyExecJS Runtime Error: Could not find an available JavaScript runtime.

报错信息:我的服务器是CentOS我的项目使用Python + Tornado构建,最后部署到服务器上时遇到js运行时错误,网上说没有安装nodejs,所以我按照以下步骤安装好后,重启supervisorctl的进程服务,然后就顺畅运行了解决方案依次安装nodejs,按照以下步骤第一步:安装gcc-c++yum install -y gcc-c++ make第二步:下载并安装n...

2020-03-03 20:23:25 2550

原创 10、以太坊智能合约开发(编写智能合约的安全性相关和注意事项)

Ethereum有两个账户第一种:合约账户(contract accounts) 可以接收、和持有资金,但是不能转账,因为没有private key第二种:外部拥有账户(externally owned accounts)可以对资金进行接收、持有、和转账,有private key应该要知道的1.payable关键字表示该函数可以接收funds2.msg.value关键字表示接收...

2020-02-04 18:57:51 743 3

原创 9、以太坊智能合约开发(暂停运行合约和合约升级)

暂停正在运行的智能合约为什么要暂停正在运行的合约?答:Stop Loss(及时止损)。假如智能合约编写的有重大bug,会引起合约里的财产被盗、钱被偷了,由于区块链具有不能变性(Immutability),部署到mainnet上的合约一旦生成就是固定的了,遇到这种bug,我们一定要提前在合约里设计好规则,比如提供可设置合约可用性的函数,使得合约里的所有函数,或者跟转账、提款等重要的函数进行约束暂...

2020-02-04 18:44:52 1000 1

原创 8、以太坊智能合约(IPFS的基础使用)

IPFS官网:ipfs.ioIPFS是一个peer-to-peer的超媒体协议,发明的目的是替换现有的HTTP协议,使得Web更快、更安全、更开放。IPFS的全称是星际文件系统(InterPlanetary File System) ,具备基本Web 2.0时代的功能和特性,也开启了Web 3.0时代!对于HTTP 2.0的时代,客户端向服务器发送一个请求,服务器返回一个响应结果,涉及的技...

2020-02-02 22:12:58 2078

原创 7、以太坊智能合约(安全审计 和 测试工具)

安全审计 Security Audits当你开发完智能合约后,可以交给专业的团队或者机构来审核你的智能合约,报告会指出有哪些漏洞?该如何修复等Open ZeppelinCoinFabrikQuillhash 测试工具Manticore 支持EVM的动态二进制分支工具Input Generation: Manticore自动生成输入来触发独立的代码路径Error Di...

2020-02-01 18:39:17 3597 1

转载 以太坊智能合约 network id 列表

0: Olympic, Ethereum public pre-release PoW testnet1: Frontier, Homestead, Metropolis, the Ethereum public PoW main network1: Classic, the (un)forked public Ethereum Classic PoW main network, ...

2020-01-28 17:16:57 1688

原创 5、以太坊智能合约开发(使用OpenZeppelin编写Token合约)

OpenZeppelin 是一个在以太坊上编写智能合约的库。在这里可以找到很多的Token合约的实现https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/token这些文件夹里就有不同的token合约的实现,是属于OpenZeppelin官方的实现步骤1.创建一个空目录OpenZepp...

2020-01-21 20:44:58 1341 3

原创 4、以太坊智能合约开发(自己编写ERC-20的Token合约)

What are Tokens?Ether 是以太坊的本土货币,用于智能合约Tokens 是构建在以太坊平台上用于在不同的机构或实体之间基于一些指定的规则来交换价值的token的智能合约智能合约被用来创建tokens,这些智能合约也促进了tokens的交易,和tokens的账户余额记录。当一个Token被创建后,该token就可以用来交易、花销、和转账给别人什么是Token ...

2020-01-15 11:44:41 2236

原创 3、以太坊智能合约开发(语法开发学习)

Smart Contracts 智能合约什么是智能合约?答:a. It’s a piece of code that lives on the blockchain network.b. A self operating computer program that automatically executes when certain conditions are metc. It ca...

2020-01-08 11:04:50 623 1

原创 2、以太坊智能合约开发(宠物收养DApp)

本篇教程将带您完成一个DApp应用 - 宠物商店的收养追踪系统在开始之前,本篇教程需要读者了解基本的以太坊和智能合约的基础知识,并且掌握基础的HTML和JavaScript的知识。在这篇教程中,我们会讲到:1.设置开发环境2.使用Truffle box来创建一个Truffle项目3.编写智能合约4.编译和迁移智能合约5.测试智能合约6.创建与智能合约交互的用户界面7.在浏览器...

2020-01-02 14:44:13 1111 1

原创 适配 iOS 13 设置 deviceToken

在 iOS 13 之前的版本使用下面代码可以将获取到的 deviceToken,转为 NSString 类型,并去掉其中的空格和尖括号,作为参数传入 setDeviceToken: 方法中。- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSDat...

2019-12-27 21:05:03 1435

原创 超级简单的WebSocket的聊天应用

超级简单的WebSocket的聊天应用1.定义消息类型2.定义WebSocket的实例类型3.定义聊天消息model4.定义Socket连接、发送消息、发送心跳类5.定义发布订阅类,用于新消息来了立即发布接收到的消息到相关的页面6.实现网页打开时,连接服务器;关闭页面时,断开socket连接7.收到消息后,发送浏览器外的通知效果预览:https://web.yooul.com/ch...

2019-11-23 12:49:24 781 2

长安链v2.1.0-从0到1的部署

长安链,又名ChainMaker, 版本v2.1.0,从0到1的部署到CentOS上

2022-06-17

io.flutter.zip

Android Studio上运行Flutter,报错could not find io.flutter:flutter_embedding_debug的错误,需要替换以上zip文件即可,Android Studio 4.2.0, Flutter 2.2.3, Dart 2.13.4

2021-07-23

程序员英文简历模板

有四个程序员英文简历模板,Web Developer, Software Engineer, Computer Science, Data Analyst,都是从国外的最新英语简历版本下载的

2019-09-19

C#的Spooler打印机相关API和Demo

这是使用C#编写的打印机相关API,使用C#的底层API控制打印机的打印,暂停,继续,删除,添加打印任务等操作

2019-08-20

商业计划书PPT.rar

商业计划书模板PPT,已经用它写过3个产品的了,其实商业计划书的布局和结构不要改的太复杂,大多投资人都喜欢简单的排版和明确的内容

2019-08-10

印加加打印管理软件

自助打印软件,自助打印系统,电脑自助打印,微信自助打印,打印店和文印店必备,特别适合高校、社会等打印店

2019-06-22

VS2010中文语言包32位和64位

这是VS2010的中文简体和中文繁体语言的安装包,有32位和64位的,请任意选择安装,官方地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=48180

2019-06-09

dotNetFx40LP_Full_x86_x64zh-Hans.zip

这个压缩包包含dotNetFx40_Full_x86_x64.exe和dotNetFx40LP_Full_x86_x64zh-Hans.exe安装文件,直接双击安装即可,该文章是从VS2010自动下载和生成的,具有Microsoft官方可靠性

2019-05-22

Newtonsoft.Json专为.Net 2.0、3.5、4.0和4.5

这是一个C#编程语言的JSON转数组或者字典对象,反之也可以,压缩包里有.Net Framework的2.0、3.5、4.0、4.5、Portable和WinRT的版本

2019-05-12

tensorflow一层神经网络

关于tensorflow一层神经网络的训练代码,可以熟知整个训练流程

2018-06-05

波士顿房屋价格预测

这是一个波士顿房屋价格预测,包含了我做的作答,仅供参考

2018-06-02

Charles4破解版

Charles4 破解版 for Mac,直接安装,安装后,可以拖到Application目录下

2018-06-01

学习曲线与交叉验证

我们可以通过学习曲线来检测模型是`欠拟合`,`过拟合`还是`刚刚好`。

2018-06-01

learning_curve 和 cross_validation

使用学习曲线和交叉验证来评估你的模型是过拟合,欠拟合,还是刚刚好

2018-06-01

iOS粒子效果

iOS粒子效果,烟花效果,自由落下,迸发等,使用CAEmitterLayer

2017-12-10

UIDynamicAnimationDemo

iOS的物理动画,使用系统的UIDynamicAnimation,它提供了碰撞,悬浮,snap等

2017-12-10

EasyUS Data Recovery 数据恢复Mac版

EasyUS Data Recovery 数据恢复Mac版, 连去年删除的文件都可以恢复,实在是超强悍,所以我才保存到了CSDN

2017-06-23

Mac版数据恢复软件破解版(Disk Drill)

Mac版 数据恢复专业软件破解版(Disk Drill)版本:3.1.804 官方版本:https://www.cleverfiles.com/

2017-06-23

iFunBox for iOS

iFunBox是一个iOS系统的文件浏览器,安装在Mac端,浏览iOS系统全面貌,就像Finder一样,iOS需要越狱,官方下载地址http://www.i-funbox.com/en_download.html

2017-06-02

Hopper V4.0.8 破解工具

Hopper V4.0.8 破解工具

2017-06-01

class-dump official version

2017-04-16

iOSAppReverseEngineering

iOSAppReverseEngineering

2017-04-16

Could not find Developer Disk Image iOS 9.3下载

Could not find Developer Disk Image iOS 9.3下载

2016-03-22

vs2010+C#能开发出Win7和WinXP运行的程序吗?

2019-04-29

微信支付提示:调用支付JSAPI缺少参数:total_fee

2019-02-10

typedef void Node; 这行代码怎么叫?它的意思是什么?

2016-08-10

iOS放大镜完整APP,不知道怎么做

2016-03-21

Apple Pay的收款人怎么编写代码

2016-03-10

升级EI Capitan后,XCode6.1就不能编译成功了,怎么解决

2016-02-15

Objective-C和Swift怎么开发VR应用

2016-02-15

iOS开发UIWebView怎么开启一个新的标签页

2015-12-11

Yosimite系统安装了xcode5.1怎么运行iOS6模拟器

2015-10-01

自己下载IOS模拟器怎么添加到XCODE?

2015-09-27

iOS开发中的.m文件编译后,是什么格式的文件?可以被反编译吗?

2015-09-19

safari浏览器插件extension开发,一定要交99美金吗

2015-08-29

chrome浏览器插件自动安装

2015-08-28

C语言编写获取当前系统所有正在运行的应用程序

2015-08-23

NSSet,NSDictionary,是属于链表结构存储的数据吗

2015-08-21

OC中的结构体变量和结构体指针变量的区别

2015-08-18

..//这样的路径是什么意思

2015-06-16

3,6,5,3,6,4,8,6,4,4,7,3,4,6,6,7,7,2,6,4,。。。接下来是什么

2015-06-09

-1,-4,6,-1,2,-3,2,0,2......具体如下,可以找出规律来吗

2015-06-09

知道了高德地图的某个位置的经纬度,如果查出具体位置?

2015-06-07

ASP.NET两个网站的cookie信息如何共享

2015-04-30

页面悬浮层有三个,一个是外连接的JS客服,两个是自定义的悬浮层,在谷歌下就不能跟着浏览器滚动,怎么办

2015-04-18

C#控制台程序怎么发布

2015-03-04

在C#中的客户端编程中,我需要读取项目的一个文件的,该怎么读取?

2015-02-26

ASP.NET错误 6 类型已定义了一个名为“Page_Load”的具有相同参数类型的成员

2015-02-04

Visual Studio查找与替换时,如何不让它 打开页面

2015-02-04

win7的消息队列怎么用,比如使用C#

2015-01-20

C#连接数据库的不知道哪个出错了

2014-01-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除