THRIFT-3750 Check isSet in copyWithZone
Client: Cocoa
Patch: Zach Howe <zach@zachhowe.com>

This closes #958
diff --git a/compiler/cpp/src/generate/t_cocoa_generator.cc b/compiler/cpp/src/generate/t_cocoa_generator.cc
index 4258965..794fb44 100644
--- a/compiler/cpp/src/generate/t_cocoa_generator.cc
+++ b/compiler/cpp/src/generate/t_cocoa_generator.cc
@@ -795,12 +795,15 @@
   
   for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
     t_type* t = get_true_type((*m_iter)->get_type());
+    out << indent() << "if (_" << (*m_iter)->get_name() << "IsSet)" << endl;
+    scope_up(out);
     if (type_can_be_null(t)) {
       out << indent() << "val." << (*m_iter)->get_name() << " = [self." << (*m_iter)->get_name() << " copy];";
     } else {
       out << indent() << "val." << (*m_iter)->get_name() << " = self." << (*m_iter)->get_name() << ";";
     }
     out << endl;
+    scope_down(out);
   }
   
   out << indent() << "return val;" << endl;