ADDRESPONSE - ADDING TO MEMORY ONLY: http://XXXXXXXX的续集

本文介绍了解决iOS6上因使用iOS7引入的Base64编码方法而导致的兼容性问题的方法。通过判断当前环境是否支持新方法,并提供替代方案,解决了在旧版iOS上的崩溃问题。

昨天在做iOS6的兼容时出现了这个问题,只要设置下手机就可以消除这个Log了。今天在次遇到了这个问题,设置后也不起作用,还有其它的错误提示:"-[NSConcreteData initWithBase64EncodedString:options:]: unrecognized selector sent to instance ",在次根据这个提示在代码中找到了initWithBase64EncodedString:options这个,看了下api 这个方法是在iOS7才出现的,在iOS6中是不起作用的,最后修改了下代码就没有这个提示了。代码如下:

//这里要做ios6的兼容
        NSData *certData;
        if ([NSData instancesRespondToSelector:@selector(initWithBase64EncodedString:options:)]) {
            certData = [[NSData alloc] initWithBase64EncodedString:certString options:0];
        }else{
            certData = [[NSData alloc] initWithBase64Encoding:certString];
        }


这种问题都是iOS缓存的问题,如果光是提示“ADDRESPONSE - ADDING TO MEMORY ONLY:”的话可以不用处理。如果还有其它的提示就要来相应处理下了。

参考:http://www.itstrike.cn/question/297e76c6-2d45-4b5b-9df3-1e4f7d200d88.html

http://stackoverflow.com/questions/21392190/base64encodedstringwithoptions-crashing-on-sentest

http://blog.youkuaiyun.com/ayuapp/article/details/11989195

http://stackoverflow.com/questions/11300044/on-ios-where-is-the-nsurlcache-cache-stored-if-diskpathnil?lq=1

client/ ├── pom.xml ├── src │ └── main │ ├── java │ │ └── com │ │ └── example │ │ ├── ArithmeticClient.java │ └── proto │ └── arithmetic.proto 两个独立的Ubuntu系统,server和client,目前都已成功安装GRPC,我现在想在服务端用C++,客户端用java,实现以下功能: 客户端向服务端发送两个数,服务端进行加减法,然后将结果返回客户端 请给出流程步骤及代码,要详细和完整 我的protoc-gen-grpc-java插件版本(1.30.0) 我的Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae) Maven home: /opt/maven Java version: 11.0.27, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64 Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "6.8.0-59-generic", arch: "amd64", family: "unix" protoc版本:libprotoc 3.12.4 echo $JAVA_HOME 输出:/usr/lib/jvm/java-11-openjdk-amd64 客户端ip:192.168.42.132 服务端IP:192.168.42.133 目前server端已处理完毕,其中arithmetic.proto: syntax = "proto3"; package arithmetic; service Arithmetic { rpc Add (OperationRequest) returns (OperationResponse) {} rpc Subtract (OperationRequest) returns (OperationResponse) {} } message OperationRequest { int32 number1 = 1; int32 number2 = 2; } message OperationResponse { int32 result = 1; } server.cpp: #include <grpcpp/grpcpp.h> #include <iostream> #include "arithmetic.grpc.pb.h" using grpc::Server; using grpc::ServerBuilder; using grpc::ServerContext; using grpc::Status; using namespace arithmetic; class ArithmeticServiceImpl final : public Arithmetic::Service { public: // 必须添加public访问修饰符 Status Add(ServerContext* context, const OperationRequest* request, OperationResponse* reply) override { reply->set_result(request->number1() + request->number2()); return Status::OK; } Status Subtract(ServerContext* context, const OperationRequest* request, OperationResponse* reply) override { reply->set_result(request->number1() - request->number2()); return Status::OK; } }; int main() { std::string server_address("0.0.0.0:50051"); ArithmeticServiceImpl service; ServerBuilder builder; builder.AddListeningPort(server_address, grpc::InsecureServerCredentials()); builder.RegisterService(&service); std::unique_ptr<Server> server(builder.BuildAndStart()); std::cout << "Server listening on " << server_address << std::endl; server->Wait(); return 0; } 请生成java端的代码,要求是由用户输入两个数,并且要说明文件级别架构 在client文件夹内操作 按顺序详细给出操作步骤,要认真仔细,确保可以编译和运行,一定要认真审查 java的pom.xml到底如何配置,老是报错,这个要认真思考和推理,详细解释pom文件
05-15
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值