欢迎使用优快云-markdown编辑器

简介:

protobuf 即 google protocol buffer 是一种数据封装格式协议;

比如其他经常用的xml,json等格式;protobuf的优势是效率高,同样的一份数据使用protobuf存储的时候更小,更加方便;

官网:

https://developers.google.com/protocol-buffers/

https://github.com/google/protobuf

在iOS上的使用

目前最新的版本需要xcode7.0+,以及不支持ARC

  1. 从github上面下载全部代码

  2. 在mac上编译protobuf 可能还需要 autoconf,libtool,automake,

    请先在mac上安装这三个依赖库;使用brew安装就行

      brew install autoconf

    brew install libtool

    brew install automake

    automake的安装可能会连接到被墙的网站,这时从网上找一份谷歌host即可;

  3. 解压下载的 protobuf-master, 并打开终端入 /protobuf-master/objectivec/DevTools/ 目录

    执行 sudo sh full_mac_build.sh

    等待编译完成,如果遇到错误可能是上面3个依赖或是别的依赖没有安装,排查一下就好

  4. 安装完成之后,即会在 protobuf-master/src/ 目录下生成 protoc 可执行程序

    以后我们需要用该生成把 .proto文件生成对应平台的代码;

  5. 如下安装protobuf定义的proto3语法生成一份测试用的数据格式,Person.proto文件

复制代码

syntax = “proto3”;

message Person {
string name = 1;
int32 age = 2;
string address = 3;

}

复制代码

  1. 使用 protoc 将 .proto文件 生成对应平台的代码;这里生成oc的代码
    1,创建Model目录
    2,命令行:protoc –plugin=/usr/local/bin/protoc-gen-objc Person.proto –objc_out=./Model
    3,打开Model,可以看到目录中已有.h.m文件:
    ├── Person.pbobjc.h
    └── Person.pbobjc.m

    生成之后的oc,.h 和 .m 就可以放到xcode工程里面使用了,不支持ARC,ARC的工程对此.m添加 -fno-objc-arc

测试

  A.新建一个项目ProtobufDemo,将刚才生成的两个文件加入项目。然后将ProtocolBuffers-2.2.0-Source/objectivec 下的文件放到项目的目录下,最好放在一个文件夹下面像这样

创建一个ProtobufLib文件夹,放进去.

  B.之后把ProtocolBuffers.xcodeproj添加到项目中,我习惯将它放到Frameworks下。

  C.然后双击Targets下的ProtobufDemo,点击+添加,之后做一些配置,like this

在.pch文件中导入 #import “ProtocolBuffers.h”

配置好这些之后编译你的项目,应该不会报错了吧。

demo核心代码
复制代码

  • (void)loadView {
    [super loadView];

    Person *person = [[[[[Person builder] setName:@”uniy”]
    setId:7]
    setEmail:@”abc@163.com”] build];
    NSData *data = [person data];

    NSString *docPath = [self applicationDocumentsDirectory];
    NSString *path = [docPath stringByAppendingFormat:@”/person.data”];

    if ([data writeToFile:path atomically:YES]) {
    [self readFileWithPath:path];
    }

}

  • (NSString *)applicationDocumentsDirectory {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return basePath;
    }

  • (void)readFileWithPath:(NSString *)path {

    NSData *data = [NSData dataWithContentsOfFile:path];
    Person *person = [Person parseFromData:data];

    if (person) {
    NSLog(@”\n id %d \n name: %@ \n email: %@ \n”,person.id, person.name, person.email);
    }
    }

复制代码

我写的很简洁,这里有个详细英文版的教程,很详细:

http://www.kelvinkaodev.com/blog/2010/08/compiling-the-protocol-buffer-compiler-for-objective-c/

在自媒体领域,内容生产效率与作品专业水准日益成为从业者的核心关切。近期推出的Coze工作流集成方案,为内容生产者构建了一套系统化、模块化的创作支持体系。该方案通过预先设计的流程模块,贯穿选题构思、素材整理、文本撰写、视觉编排及渠道分发的完整周期,显著增强了自媒体工作的规范性与产出速率。 经过多轮实践验证,这些标准化流程不仅精简了操作步骤,减少了机械性任务的比重,还借助统一的操作框架有效控制了人为失误。由此,创作者得以将主要资源集中于内容创新与深度拓展,而非消耗于日常执行事务。具体而言,在选题环节,系统依据实时舆情数据与受众偏好模型生成热点建议,辅助快速定位创作方向;在编辑阶段,则提供多套经过验证的版式方案与视觉组件,保障内容呈现兼具美学价值与阅读流畅性。 分发推广模块同样经过周密设计,整合了跨平台传播策略与效果监测工具,涵盖社交网络运营、搜索排序优化、定向推送等多重手段,旨在帮助内容突破单一渠道局限,实现更广泛的受众触达。 该集成方案在提供成熟模板的同时,保留了充分的定制空间,允许用户根据自身创作特性与阶段目标调整流程细节。这种“框架统一、细节可变”的设计哲学,兼顾了行业通用标准与个体工作习惯,提升了工具在不同应用场景中的适应性。 从行业视角观察,此方案的问世恰逢其时,回应了自媒体专业化进程中对于流程优化工具的迫切需求。其价值不仅体现在即时的效率提升,更在于构建了一个可持续迭代的创作支持生态。通过持续吸纳用户反馈与行业趋势,系统将不断演进,助力从业者保持与行业发展同步,实现创作质量与运营效能的双重进阶。 总体而言,这一工作流集成方案的引入,标志着自媒体创作方法向系统化、精细化方向的重要转变。它在提升作业效率的同时,通过结构化的工作方法强化了内容产出的专业度与可持续性,为从业者的职业化发展提供了坚实的方法论基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
**项目概述** 本项目为一项获得高度评价的毕业设计成果,其核心内容为基于Python与Flask框架构建的轻量化Web应用防火墙(WAF)系统。项目资源完整,包含可运行的源代码、详尽的技术文档及配套数据资料,整体设计经过严格测试与评审,具备较高的学术与实践价值。 **技术特点与验证** 系统采用Python与Flask框架实现,注重代码的简洁性与执行效率,在保障基础防护功能的同时降低了资源消耗。项目代码已在macOS、Windows 10/11及Linux等多类主流操作系统中完成功能测试,运行稳定且符合预期目标。 **适用对象与用途** 本资源适用于计算机科学与技术、软件工程、人工智能、通信工程、自动化及相关专业领域的在校师生、科研人员或行业开发者。项目可作为毕业设计、课程作业、课题研究或项目原型开发的参考材料,也为初学者提供了深入理解WAF机制与Flask应用开发的实践案例。使用者可根据自身需求对代码进行扩展或调整,以适配不同的应用场景。 **项目背景与认可度** 该设计在毕业答辩过程中获得导师的充分肯定,评审分数达到95分,体现了其在设计完整性、技术规范性与创新性方面的优势。项目资料经过系统整理,便于学习者进行复现与二次开发。 **使用建议** 建议具备一定编程基础的用户参考本项目,进一步探索Web安全防护机制或进行功能拓展。项目内容注重逻辑严谨性与结构清晰度,适合用于教学演示、技术研讨或个人学习。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值