From 6d19724a9008919eb1ef0a01790a2fa6299ac9d8 Mon Sep 17 00:00:00 2001
From: Nate Kibler <nkibler@google.com>
Date: Fri, 25 Sep 2015 10:02:20 -0700
Subject: [PATCH] Adds class factory method to generated ProtoService classes

---
 src/compiler/objective_c_generator.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/compiler/objective_c_generator.cc b/src/compiler/objective_c_generator.cc
index a3157db0fb..9eed78c961 100644
--- a/src/compiler/objective_c_generator.cc
+++ b/src/compiler/objective_c_generator.cc
@@ -203,6 +203,7 @@ void PrintMethodImplementations(Printer *printer,
     printer.Print(
         "- (instancetype)initWithHost:(NSString *)host"
         " NS_DESIGNATED_INITIALIZER;\n");
+    printer.Print("+ (instancetype)serviceWithHost:(NSString *)host;\n");
     printer.Print("@end\n");
   }
   return output;
@@ -239,6 +240,10 @@ void PrintMethodImplementations(Printer *printer,
     printer.Print("                 packageName:(NSString *)packageName\n");
     printer.Print("                 serviceName:(NSString *)serviceName {\n");
     printer.Print("  return [self initWithHost:host];\n");
+    printer.Print("}\n\n");
+    printer.Print("// Class factory method\n");
+    printer.Print("+ (instancetype)serviceWithHost:(NSString *)host {\n");
+    printer.Print("  return [[self alloc] initWithHost:host];\n");
     printer.Print("}\n\n\n");
 
     for (int i = 0; i < service->method_count(); i++) {
-- 
GitLab