NSData和NSMutableData

Objective-C NSData和NSMutableData Objective-C的IO机制:一些基本的文件管理API: NSFileManager: 管理文件和目录,包括创建、删除、移动、复制文件; NSFileHandle: 读取文件内容; NSURL: 读取网络资源; NSBundle:读取项目内部资源;一种独特的机制:对象归档 对象归档就是将OC对象转化为二进制流,然后将对象保存到磁盘或者网络上,以便能够程序能够从磁盘或者网络上恢复这个对象 阅读详情
     NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。NSData创建后不可以再修改,NSMutableData可以再次修改。

1、NSString和NSData之间的转换
    NSString *string = @“哎我去上市了! " ;
    //1 、字符串转换成 NSData
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    //2 、 NSData 转换成字符串
    NSString * inString = [[NSString alloc]initWithData: data  encoding:NSUTF8StringEncoding];

 2、UIImage和NSData之间的转换
    // 获取图片路径
    NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"01loading.png" ofType:nil];
    NSData *imgData = [ NSData dataWithContentsOfFile :imgPath];
    //直接使用,也可写入文件
    self.imageView.image = [UIImage imageWithData:imgData];
     1>.数据库里存储图片 存储图片路径 /images/car@2x.png;
     2>.如果图片是较小的 可以将UIImage转换成NSData存数据库。

 3、NSNumber、NSArray、NSDictionary和NSData之间的转换
     数组转NSData是建立在归档的基础上,归档也称为序列化,OC中NSString 对象、NSNumber对象、NSArray对象
NSDictionary字典对象、NSData 数据对象、这些类要进行数据保存时可以通过NSKeyedArchive 类来实现。
     Foundtaion框架<Foundation/NSKeyedArchiver.h>提供归档和解归档的方式,也叫做序列化和反序列化的过程。
     1>.把字典或数组用归档形式直接保存到某一个文件中
    // 初始化一个字典
    NSDictionary *dict = @{
                          
@"key1" : @"hahahah1" ,
                          
@"key2" : @"hahahah2" ,
                          
@"key3" : @"hahahah3" ,
                          
@"key4" : @"hahahah4" ,
                          
@"key5" : @"hahahah5" ,
                          
@"key6" : @"hahahah6" ,
                           @"key7":@"hahahah7"};
    // 归档路径
    NSString *docPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"dict.plist"];
    // 归档后直接保存到文件中
    [NSKeyedArchiver archiveRootObject:dict toFile:docPath];

     2>.把字典或数组先转换成NSData,再保存到某一个文件中
    // 初始化一个字典
   
NSDictionary *dict = @{
                          
@"key1" : @"hahahah1" ,
                          
@"key2" : @"hahahah2" ,
                          
@"key3" : @"hahahah3" ,
                          
@"key4" : @"hahahah4" ,
                          
@"key5" : @"hahahah5" ,
                          
@"key6" : @"hahahah6" ,
                           @"key7":@"hahahah7"};
    // 归档路径
    NSString *docPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"dict.plist"];
    //转换成NSData
    NSData *dictData = [ NSKeyedArchiver archivedDataWithRootObject :dict];
    //保存到文件中
    NSFileManager *fm = [ NSFileManager defaultManager ];
    [fm createFileAtPath:docPath contents:dictData attributes:nil];
    
     3>.解归档
          直接从文件解归档
    NSDictionary *Undict = [ NSKeyedUnarchiver unarchiveObjectWithFile :docPath];
     将文件转换成NSData,在从NSData解归档
    NSData *UndictData = [fm contentsAtPath :docPath];
    NSDictionary *Undict = [NSKeyedUnarchiver unarchiveObjectWithData:UndictData];

三极管、MOS管和晶体管综合对比——《器件手册--三极管、MOS管和晶体管》 IGBT(Insulated Gate Bipolar Transistor,绝缘栅双极型晶体管)是一种复合全控型电压驱动式功率半导体器件,结合了MOSFET的高输入阻抗、开关速度快的优点和双极型晶体管(BJT)的低导通压降、高电流密度的优点。例如,在NPN型三极管中,当基极电流增加时,集电极电流会按照一定的比例(放大倍数β)增加,这个比例通常在几十到几百之间。在NMOS管中,当栅极相对于源极的电压(Vgs)小于开启电压(Vth)时,漏极和源极之间没有导电沟道,电流无法通过,处于截止状态。 阅读详情

相关推荐

【3DSlicer】基于心脏ct影像重建3d模型及导出

软件:3DSlicer4.11 基于心脏ct影像重建3d模型

Liuees的博客 1万+

杂记-- 转换和NSMUTableData 的使用

一。 转换    /// 字符串转NSData          NSString *string=@"123";     NSData *data=[string  dataUsingEncoding:NSUTF8StringEncoding];          // NSData 转 字节数组     Byte *betys=(Byte *)[d

u011118092的博客 1064

PWM与光耦的完美联姻:低成本4-20mA转换方案揭秘

本文揭秘了PWM与光耦结合的低成本4-20mA转换方案,适用于工业自动化领域。通过PWM信号控制输出电流,光耦实现电气隔离,该方案成本低廉、电路简单且隔离可靠。文章详细介绍了两种经典电路实现方案,包括四光耦线性模式方案和PWM控制LM317方案,并提供了实战技巧与优化策略,帮助中小企业和电子DIY爱好者构建经济高效的4-20mA转换系统。

weixin_29229055的博客 534

NSData转NSString时,返回为nil?

错误原因:是由于在转换成二进制或者其他进制时,可能包含00,编码是UTF8,所获得的新字符就会为nil。解决方法:可以先把二进制转成字符指针或者字节,在截取字符串不必要的字符“&lt;”和“&gt;”,//将传入的NSData类型转换成NSString并返回-(NSString *)convertToNSString:(NSData *)data{    const unsigned char *...

桥边风满袖的博客 3629

轻量级替代方案:用AIFlowy + Ollama在本地快速搭建一个可用的AI智能体平台

本文介绍了如何使用AIFlowy和Ollama在本地快速搭建轻量级AI智能体平台,涵盖从环境准备到智能体集成的全流程。通过简化部署步骤和优化性能,15分钟内即可完成搭建,适用于原型验证和小团队协作,显著提升开发效率。

weixin_29207533的博客 218

YOLOv8 交通流量监测详解

本文介绍了一个基于YOLOv8的交通流量监测系统,该系统通过深度学习技术实现车辆实时检测、跟踪和分类。系统核心功能包括:1)使用YOLOv8模型检测道路车辆并进行持续跟踪;2)按方向和车型统计车流量;3)支持多区域流量监测和数据可视化。文章提供了完整的代码实现示例,涵盖基础车辆检测、视频流处理和高级数据分析功能。系统还可进一步优化性能,如使用轻量级模型、GPU加速等,并建议扩展车速估算、密度分析等功能。该方案为交通管理提供了有效的实时监测和决策支持工具。

u010117029的博客 346

iOS 16进制字符与NSData之间的转换

#pragma mark - 十六进制转换工具 // 16进制转NSData - (NSData *)convertHexStrToData:(NSString *)str { if (!str || [str length] == 0) { return nil; } NSMutableData *hexData = [[NSMutableDa...

iFlyingCoder的博客 3443

【MATLAB】通过计算曲率和曲率变化率来实现对曲线波浪程度

这段代码将计算给定曲线的曲率,并与给定阈值进行比较以检测拐角。函数是MATLAB中一个常用的函数,可以用于计算曲线在每个点处的曲率。它基于一种被称为“local least squares fitting” 的方法,通过拟合每个点周围的一小段曲线来计算曲率。MATLAB中可以使用多种方法实现拐角检测,其中一种方法是基于曲率半径的算法。该算法通过计算曲线上每个点处的曲率半径,找到拐角和弯曲处。是一个可选参数,用于控制拟合曲线的平滑度,取值范围为0到1,越接近1表示曲线越平滑。表示曲线在每个点处的曲率,

Fanjufei的博客 1918

Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage

1,NSData与 NSString  NSData --> NSString  NSString *aString = [[NSString alloc] initWithData:adata encoding:NSUTF8StringEncoding];  NSString --> NSData  NSString *aString = @"1234";  NSData...

dianzudi1839的博客 234

【AI智能体】Codex 生成高质量电商套图实战操作详解

Codex 生成高质量电商套图实战操作详解

congge 4513

机器学习笔记 - 基于深度学习(HomographyNet)的图像单应性估计

论文提出了一个深度卷积神经网络来估计一对图像之间的相对单应性。我们的前馈网络有10层,以两个堆叠的灰度图像作为输入,并产生一个8自由度的单应性,可用于映射从第一个图像到第二个图像的像素。我们为HomographyNet提出了两种卷积神经网络架构一个直接估计实值单应性参数的回归网络,以及一个在量化单应性上产生分布的分类网络。我们使用4点单应性参数化,将一个图像的四个角映射到第二个图像。我们的网络使用扭曲的MS-COCO图像以端到端的方式进行训练。论文的贡献如下。........................

学以致用 知行合一 3083

iOS NSMutableData和NSData常用操作

//联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 NSData               是不可变二进制数据 NSMutableData   是可变的二进制数据 NSData创建后不可以再修改,NSMutableData可以再次修改。 NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用

石虎 4307

无人机视角下基于YOLOv5/v8/v10的车辆检测系统:从算法原理到UI界面实战

随着无人机技术的普及和智慧城市的发展,无人机视角下的车辆检测在交通监控、战场侦察、灾害救援等领域展现出巨大的应用价值。然而,无人机航拍图像存在目标尺度小、视角多变、背景复杂等挑战。本文深入探讨了如何利用YOLOv5、YOLOv8、YOLOv10三个代表性目标检测算法,构建一套完整的无人机车辆检测系统。文章不仅详细解析了各版本YOLO的核心技术演进,还提供了从数据集准备、模型训练、性能评估到基于PyQt5/PySide6的图形界面开发的完整代码实现。通过本文,读者将能够掌握构建无人机实时车辆检测系统的全流程技

YOLO 172

24 Foundation框架之NSData和NSMutableData

24 Foundation框架之NSData和NSMutableDataTags: Objective-CNSData代表了数据缓冲区,主要作用用来封装数据。代码示例如下:NSDataTest.m#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool {

小三哥的随手记 921

深度学习工具包 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")

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Objective-c语言_NSData(不可变数据)和NSMutableData(可变数据)

#import int main(int argc, const char * argv[]) {     @autoreleasepool {                  /*          NSData          NSMutableData                    在计算机中文件分为哪几种?

蓝海洋的博客 1384

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NSData和NSMutableData存储的是二进制数据

NSMutableData //初始化  NSMutableData *mData = [[NSMutableData alloc] init];  //    NSMutableData *mData = [[NSMutableData alloc] initWithCapacity:1024];  //    NSMutableData *mData = [[NSMutableDat

上孟的专栏 2816

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

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

Objective-c NSMutableData和NSData常用操作

NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。

gahd89757的专栏 2万+

Objective-C_语言_NSData(不可变数据)和NSMutableData(可变数据)

#import int main(int argc, const char * argv[]) { @autoreleasepool { //NSData / NSMutableData /* 1.计算机中文件分为哪几种? 二进制文件和文本文件,其中我们的图片,歌曲,电影等就是二进制文

狂雨时代的博客 639

缓存区 NSData 与 NSMutableDate

计算机中的文件分为 二进制 和 文本文件二进制 : 其中我们的图片 视频 音频等就是二进制 . 文本文件 : 向’ .txt ’ 的文件就是文本文件 .客户端与服务器 , 或者客户端与客户端数据交流的格式为二进制(字节流) . 在我们的OC中用NSData来存储,在NSData类中,由其实例化的对象,此对象包含大量的字节,这些字节就是我们客户端想要的信息NSData : 它用来设置缓冲

fanzef2n9的博客 306

OC_文件NSData NSMutableData

1.计算机文件分为哪几种二进制文件 和 文本文件,其中我们的图片、视频、音频等就是二进制文件,像‘.txt’的文件就是文本文件。 2.客户端与服务器端,或者客户端和客户端数据交流的格式为二进制(字节流)。 在我们OC中用什么类存储?即‘NSData’类。在NSData中,由其实例化的对象,此对象包含了大量的字节,这些字节是我们客户端想要的信息。初始化 创建一个空的dataNSData *data

yourjjboom的博客 462

NSData和NSString 、 NSFileManager

1 NSData和NSMutableData的基本使用 1.1 问题 NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,length表示字节的数量,bytes起始字节的位置是一个指针类型,本案例演示NSData和NSMutableData的基本使用,使用NSData /NSMutableData对象保存一个C语言字符串。 1...

weixin_30319153的博客 350

nsdata

#import &lt;Foundation/Foundation.h&gt; /** NSData对象是不可变的,它被创建后就不能改变。NSMutableData支持正数据内容中添加和删除字节 */ int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutorelease...

俺是一个瓜娃!!! 91

nsurl转nsdata_iOS开发之基础篇(8)—— NSData

版本Xcode 8.2.1简介NSData为二进制数据,在文件操作(如保存到本地)、网络、以及核心图形图像中使用较广泛。NSData的创建//对象方法创建NSData *data1 = [[NSData alloc] init];NSData *data2 = [[NSData alloc] initWithData:data1];//类方法创建NSData *data3 = [NSData da...

weixin_39644611的博客 1813

iOS NSMutableData

这里记录下NSMutableData的使用,当我们用到socket传送信息时,要将数据转换成数据流。这时就用NSData 下面举个小例子,说明NSData的用法。 NSMutableData *mutableData = [[NSMutableData alloc] init]; int i = 143; NSData *data = [NSData dataWithBytes

杜甲同学的专栏 3406
上一篇: iOS沙盒(sandbox)机制及获取沙盒路径
下一篇: 归档和解归档
BobooO
博客等级 码龄18年 29粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值