归档的两种方式

Grafana集成PCP:实时与归档两种方式可视化BPF指标 本文详细介绍如何通过Grafana集成Performance Co-Pilot(PCP),实现BPF指标的可视化。重点对比grafana-pcp-live(实时轮询,无持久化)和grafana-pcp-redis(归档存储,支持历史数据)两种数据源方案的原理、适用场景及配置步骤,并以bcc.runq.latency(runqlat)为例展示Heatmap热力图配置过程,帮助开发者在实时故障排查与长期趋势监控之间做出合理选择。 阅读详情

对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化),

(对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看)。

对象归档有两种方式:1:对foundation中对象进行归档  2:自定义对象归档


1、简单对象归档

使用两个类:NSKeyedArichiver、NSKeyedUnarchiver

NSString *homeDirectory = NSHomeDirectory();   //获取根目录

NSString homePath = [homeDirectory stringByAppendingPathComponent:@"自定义文件名,如test.archiver"];

NSArray *array = @[@"abc", @"123", @12];

Bool flag = [NSKeyedArichiver archiveRootObject:array toFile:homePath];

if(flag) {

   NSLog(@"归档成功!");

}

 

读取归档文件的内容:

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile: homePath ];

NSLog(@"%@", array);

 

这样就简单了实现了将NSArray对象的归档和解档。

但是这种归档方式有个缺点,就是一个文件只能保存一个对象,如果有多个对象要保存的话那岂不是有n多个文件,这样不是很适合的,所以有了下面这种归档方式。

 

2、自定义内容归档

归档:

使用NSData实例作为归档的存储数据

添加归档的内容---使用键值对

完成归档

解归档:

从磁盘读取文件,生成NSData实例

根据NSData实例和初始化解归档实例

解归档,根据key访问value

 

NSString *homeDirectory = NSHomeDirectory(); //获取根目录

NSString homePath = [homeDirectory stringByAppendingPathComponent:@"自定义文件名,如test.archiver"];

NSMutableData *data = [[NSMutableData alloc] init];

NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];

[archiver encodeFloat:50 forKey:@"age"];

[archiver encodeObject:@"jack" forKey:@"name"];

[archiver finishEncoding];  //结束添加对象到data中

[archiver release];

[data writeToFile:homePath  atomically:YES];//将data写到文件中保存在磁盘上

NData *content= [NSData dataWithConenteOfFile:homePath ];

NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:content];

float age = [unarchiver decodeFloatForKey:@"age"];

NSString *name = [unarchiver decodeObjectForKey:@"name"];

 

好了,就这样,自定义的归档和解归档的使用就这样了。


归档的话 实际应用中主要用于存自定义的数据模型,与NSUserdefaults协作。这是个人的一点看法



从4A架构角度对华为MetaERP财务凭证电子归档管理模块的Inside和Outside两种开发方式进行对比分析 摘要:本文从4A架构(业务、应用、数据、技术)对比分析华为MetaERP财务凭证电子归档模块的Inside(内置)与Outside(外挂)开发模式。Inside模式深度集成ERP核心,适合高频交互和强一致性场景,优势在于业务连续性、开发效率和统一运维;Outside模式松耦合,支持跨系统集成和专业功能扩展,灵活性更高但维护复杂。建议优先采用Inside模式确保核心流程闭环,未来可通过混合架构(核心功能内置+专业能力外挂)平衡集成性与扩展性,分阶段实施以满足短期基础需求和长期智能化归档目标。 阅读详情

相关推荐

iOS 数据持久化(二)对象归档ArchiverDemo

iOS中有五种持久化数据的方式:属性列表、对象归档、NSUserDefaults、SQLite3和Core Data。 本文介绍对象归档来持久化数据。归档的作用就是将对象以文件的形式保存到磁盘中,以使得数据序列化和持久化。 使用归档的时候读取该文件保存路径来读取文件的内容,归档的文件是进行过保密处理的,在磁盘上是无法查看文件的内容的,这也是和属性列表的区别:属性列表是明文,可以直接从磁盘查看其内容。

IOS 数据存储(NSKeyedArchiver 归档篇)

什么是归档 当遇到有结构有组织的数据时,比如字典,数组,自定义的对象等在存储时需要转换为字节流NSData类型数据,再通过写入文件来进行存储。 归档的作用 之前将数据存储到本地,只能是字符串、数组、字典、NSNuber、BOOL等容器类对象,不能将自定义对象进行保存,而通过归档能将所有的对象转化为二进制数据存储到文件中。 归档的缺点 归档保存数据,只能一次性归档保存以及一次性解压。所以只...

weixin_30919429的博客 370

IAR使用教程:如何导入现有工程并成功编译

详细介绍如何在IAR中导入现有工程项目并完成编译配置,解决常见报错问题。通过清晰的操作指引,帮助开发者快速上手iar使用教程中的关键环节,提升开发效率。

weixin_42437253的博客 884

【iOS】文件(对象数据)的归档和解档

本文对iOS开发中数据持久化方法之一 --- 归档解档进行了学习,包括对单个对象、自定义对象、多个对象的归档和解档

XY_Mckevince的博客 1109

利用Openlayers4实现地图遮罩效果(二)

之前实现的遮罩效果,在深色背景的底图上,对要突出的区域采用半透明遮罩,以此来突出该区域。但是有时底图颜色偏白,这时候不再适合对要突出的区域采用遮罩,而是要对突出区域之外进行遮罩处理。两种效果的对比入下图: ...

此爱如少年 6399

Ubuntu20.04/Debian10安装向日葵远程控制踩坑实录(附依赖问题解决方案)

本文详细介绍了在Ubuntu 20.04/Debian 10系统上安装向日葵远程控制软件的全过程,重点解决了常见的依赖问题,特别是libwebkitgtk相关错误。通过自动修复、手动修改.deb包依赖和使用兼容层三种解决方案,帮助用户顺利完成安装并优化远程控制体验。

silver的专栏 751

IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)

IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)

weixin_44519342的博客 645

基于51单片机的贪吃蛇游戏设计

本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在优快云下载区) 一. 实验目的 (1) 通过对C51语言的理解,编写程序实现对贪吃蛇的有效控制; (2) 通过对51单片机硬件的学习,学会运用面包板,独立按键、点阵屏等,完成对完整电路的搭建过程; (3) 通过对Proteus仿真软件的学习,实现基于STC89C52单片机的8*8点阵贪吃蛇的硬件电路仿真。 二. 实验介绍 贪吃蛇是一款经典小游戏,其游戏的规则是:玩

山山の十三先生 2万+

iOS数据持久化---对象归档

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33735077的博客 118

告别手动转换!用腾讯云轻量服务器+QMT插件,5分钟搞定聚宽策略实盘(附完整源码)

本文详细介绍如何利用腾讯云轻量服务器和QMT插件快速实现聚宽策略的自动化实盘部署。通过云端信号中转站解决协议转换、信号缓存等核心问题,5分钟完成服务器配置,并附完整源码实现零改造实盘方案,显著提升量化交易效率。

weixin_28707739的博客 661

从一只龙虾到一支团队:OpenClaw 单 Bot 多 Agent 配置实践

单 Bot 多 Agent只有一个对外的聊天入口(飞书 Bot)内部有多个独立的 AI Agent,各司其职主 Agent(总指挥)负责接收任务并分配给子 Agent子 Agent 完成任务后将结果返回给主 Agent角色Agent ID职责使用场景🎯 总指挥main-agent统筹协调,任务分发接收所有用户请求✍️ 笔杆子内容创作公众号、博客、小红书🔬 参谋canmou深度研究竞品分析、市场调研📋 运营官operations运营管理邮件、日历、社交媒体。

Maynor的博客 1082

iOS 对象持久化之- 归档 archiving

在理解归档之前,首先要理解对象图(object graph)的概念,对象图就是对象之间经由指针等关系链接在一起形成的对象之间的关系图。 我们需要将这个对象体系或其部分对象持久化保存到文件中,在以后某时刻从文件中恢复出来之前的对象体系,这就是持久化要达成的目标。cocoa中已经实现了两种用于持久化的文件类型,就是nib文件和property list文件。 这两种文件对于要持久化到文件中的对象类

天行健 2156

网红商品数据抓取:基于Python的高效爬虫实战

本篇博客介绍了从爬取到存储、分析和可视化网红商品数据的完整流程。通过Python的强大生态,我们能够轻松完成复杂的数据抓取任务。在实际应用中,还可以将此爬虫与机器学习模型结合,进一步挖掘数据价值。

2201_76125261的博客 1476

DM数据库配置归档模式的两种方式

达梦数据库开启归档模式

wanglolaini的博客 692

sap中途启用物料账

spro->控制->产品成本控制->实际成本核算/物料分类帐->实际成本核算->激活实际成本的在产品。spro->控制->产品成本控制->实际成本核算/物料分类帐->实际成本核算->激活实际成本组件划分。spro->控制->产品成本控制->实际成本核算/物料分类帐->实际成本核算->激活实际成本核算。spro->控制->产品成本控制->实际成本核算/物料分类帐->激活评估范围的物料分类账。2.对于之前存在物料移动,但是期初没有库存的物料,物料分类账里追踪不到相关物料信息。1.需要激活物料分类账。

Yeol827的博客 996

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

DM8归档配置的两种方式

详细参数及说明见官方文档 《dm8备份还原》3.1.2节 《dm8系统管理员手册》2.1.1(3)节 文档位于dm安装目录/doc下或官网下载 归档参数文件创建后默认是数据库初始化目录下的dmarch.ini 本例的数据库初始化目录是 $DM_HOME/data/DAMENG 方式一:mount–命令行配置归档参数–open SQL> alter database mount;--修改数据库模式为配置 SQL> alter database add archivelog 'dest=/dm8/a

寒酸穷苦李大富的博客 322

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Oracle数据库两种运行方式

 1. Oracle数据库有两种运行方式:(1)归档方式(ARCHIVELOG):归档方式的目的在于当数据库发生故障时以最大限度恢复数据库,可以保证不丢失任何已提交的数据:(2)不归档方式(NOARCHIVELOG):只能恢复数据库到最近的回收点(冷备份或是逻辑备份),数据丢失时非常可能的.根据命令Archive log list可以获取现在三角裤归档状态,如:SVRMGR>archive log

vivid的技术专栏 2946

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

oracle改成归档模式_oracle运行方式之归档方式与不归档方式的转换

1、了解ORACLE的运行方式ORACLE数据库有两种运行方式:一是归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复数据库,可以保证不丢失任何已提交的数据;二是不归档方式(NOARCHIVELOG),只能恢复数据库到最近的回收点(冷备份或是逻辑备份)。如何改变数据库的运行方式,一般情况下为NOARCHIVELOG方式。当数据库创建好以后,根据我们的需要把需要运行在归...

weixin_39585617的博客 286

对达梦数据库归档的简单理解

一、归档类型 1. 本地归档: 写入REDO日志到本地归档文件,在REDO日志写入日志文件后触发,由归档线程完成本地归档动作,最多可以设置8个本地归档。若磁盘空间不足,所有本地归档一旦失效,系统会被强制挂起,直到磁盘释放,本地归档成功后,再进行进行。 2. 实时归档(实时主备集群、MPP集群)-REALTIME: 在写入REDO日志到日志文件之前,通过MAL系统发送REDO日志到远程服务器,远程服务器收到REDO日志后,返回确认消息。收到确认消息后,执行后续操作。若...

m0_37904750的博客 1190

Oracle运行有两种方式

Oracle数据有两种方式:1)归档方式(ArchiveLog):归档方式的目的在于当数据库发生故障时最大限度恢复数据库,保以保证不丢失任何已经提交的数据;2)不归档方(NoArchiveLog):只能恢复数据库到最近的回收点(冷备份或者逻辑备份),数据丢失是非常可能的。  改变不归档方式为归档方式切换数据的归档和不归档状态必须重新启动数据库并在Mount下修改:1)关闭数据库,备份已经有的数据,

Explorer的专栏 1258

SAP ABAP 程序中归档数据读取方式

SAP ABAP归档数据读取

Wuuuf的博客 1091

Oracle 归档与非归档的切换

归档时,Oralce会自动的将所产后的日志记录自动的归档, 非归档模式,则将产生的日志覆盖,对于大多数的DB来说,要求是运行在归档状态下。归档与非归档的切换,一般有两种方法,一种是在创建数据库进,选项到归档与非归档模式,另一种是,在DB运行过程中,进行切换。对于第一种,创建时可以选择,不再说明。对于第二种:需要说明的是,归档与非归档的切换,只能在DB的 Mount 状态下进行。所以要切

one_dollar 1959

Oracle的归档操作

两种方式:查询v$database和命令查看。NOARCHIVELOG和No Archive Mode都是未开启归档。

2301_76664379的博客 3975

oracle归档日志的操作

oracle利用重做日志文件记录对数据库的操作。可是重做日志文件组是循环使用的,当所有的日志文件都被填满时,系统自己主动切换到第一组日志文件,当然数据库管理员也能够使用命令手工切换。而在循环使用日志文件时,日志文件里已经存在的日志文件的内容将会被覆盖。为...

aoe41606的博客 223

oracle数据库的归档方式

 数据库可运行在两种不同方式下:NOARCHIVELOG方式(介质恢复无效)或ARCHIVELOG方式(介质恢复有效)。数据库的运行方式对数据库的备份和恢复策略具有重要的影响。归档日志对数据库备份和恢复有下列用处:数据库后备以及联机和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事务可被恢复。        在数据库打开和正常系统使用下,如果归档日志是永久保存,联机后备可以进行和使用。   ...

mymeboy的博客 512

SAP 归档 自定义字段目录及归档信息结构

SAP 自定义归档信息结构和字段目录

Wuuuf的博客 1384
上一篇: ios开发中归档的使用
下一篇: 归档实例
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值