From a230b5d20949d9ba5b31f4d762ae88af4c5ee8f5 Mon Sep 17 00:00:00 2001 From: Thomas Van Lenten Date: Tue, 21 Jun 2016 08:25:28 -0400 Subject: Rename methods to avoid ObjC KVC collisions. (#1699) Note: Breaking API change on the Dictionary classes. The numeric value classes were using "Value" in the naming, but this silently collided with the KVC category on NSObject; meaning KVC code could break up a keypath and call these selectors with the wrong types leading to crashes (even though the code all would compile cleanly). - Rename the methods to use the "type" instead of literal "Value". - Update all the impls and tests. - Enable the warning that will catch issues like this in the future. Fixes https://github.com/google/protobuf/issues/1616 --- objectivec/GPBProtocolBuffers.m | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'objectivec/GPBProtocolBuffers.m') diff --git a/objectivec/GPBProtocolBuffers.m b/objectivec/GPBProtocolBuffers.m index 8512af7e..73939391 100644 --- a/objectivec/GPBProtocolBuffers.m +++ b/objectivec/GPBProtocolBuffers.m @@ -31,6 +31,14 @@ // If you want to build protocol buffers in your own project without adding the // project dependency, you can just add this file. + +// This warning seems to treat code differently when it is #imported than when +// it is inline in the file. GPBDictionary.m compiles cleanly in other targets, +// but when #imported here it triggers a bunch of warnings that don't make +// much sense, and don't trigger when compiled directly. So we shut off the +// warnings here. +#pragma clang diagnostic ignored "-Wnullability-completeness" + #import "GPBArray.m" #import "GPBCodedInputStream.m" #import "GPBCodedOutputStream.m" -- cgit v1.2.3