diff --git a/src/compiler/objective_c_generator.cc b/src/compiler/objective_c_generator.cc index ff092053ad09386f695387a3cdd232b81e96da7d..465491e385f4b8dfd70b968da881f9a76d1eae09 100644 --- a/src/compiler/objective_c_generator.cc +++ b/src/compiler/objective_c_generator.cc @@ -75,11 +75,11 @@ void PrintMethodSignature(Printer *printer, const MethodDescriptor *method, if (method->server_streaming()) { printer->Print(vars, " eventHandler:(void(^)(BOOL done, " - "$response_class$ *response, NSError *error))eventHandler"); + "$response_class$ *_Nullable response, NSError *_Nullable error))eventHandler"); } else { printer->Print(vars, - " handler:(void(^)($response_class$ *response, " - "NSError *error))handler"); + " handler:(void(^)($response_class$ *_Nullable response, " + "NSError *_Nullable error))handler"); } } diff --git a/src/compiler/objective_c_plugin.cc b/src/compiler/objective_c_plugin.cc index 17440358bb837edb9eb15b3d6dc5a3540867f299..f62faa52610615d260784e68b9e85256f625dd72 100644 --- a/src/compiler/objective_c_plugin.cc +++ b/src/compiler/objective_c_plugin.cc @@ -64,7 +64,8 @@ class ObjectiveCGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { ".pbobjc.h\"\n\n" "#import <ProtoRPC/ProtoService.h>\n" "#import <RxLibrary/GRXWriteable.h>\n" - "#import <RxLibrary/GRXWriter.h>\n"; + "#import <RxLibrary/GRXWriter.h>\n\n" + "NS_ASSUME_NONNULL_BEGIN\n\n"; // TODO(jcanizales): Instead forward-declare the input and output types // and import the files in the .pbrpc.m @@ -81,8 +82,10 @@ class ObjectiveCGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { declarations += grpc_objective_c_generator::GetHeader(service); } + ::grpc::string nonNullEnd = "\nNS_ASSUME_NONNULL_END\n"; + Write(context, file_name + ".pbrpc.h", - imports + '\n' + proto_imports + '\n' + declarations); + imports + '\n' + proto_imports + '\n' + declarations + nonNullEnd); } {