Semantic Warnings

Warning Message
-WCFString-literal input conversion stopped due to an input byte that does not belong to the input codeset UTF-8
-WNSObject-attribute         __attribute ((NSObject)) may be put on a typedef only, attribute is ignored
-Wabstract-vbase-init initializer for virtual base class %0 of abstract class %1 will never be used
-Waddress-of-array-temporary pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression
-Warc-maybe-repeated-use-of-weak "weak %select{variable|property|implicit property|instance variable}0 %1 may be accessed multiple times in this %select{function|method|block|lambda}2 and may be unpredictably set to nil assign to a strong variable to keep the object alive
-Warc-non-pod-memaccess %select{destination for|source of}0 this %1 call is a pointer to ownership-qualified type %2
-Warc-performSelector-leaks performSelector may cause a leak because its selector is unknown
-Warc-repeated-use-of-weak "weak %select{variable|property|implicit property|instance variable}0 %1 is accessed multiple times in this %select{function|method|block|lambda}2 but may be unpredictably set to nil assign to a strong variable to keep the object alive
-Warc-retain-cycles capturing %0 strongly in this block is likely to lead to a retain cycle
-Warc-unsafe-retained-assign assigning retained object to unsafe property object will be released after assignment
-Warc-unsafe-retained-assign assigning %select{array literal|dictionary literal|numeric literal|boxed expression|should not happen|block literal}0 to a weak %select{property|variable}1 object will be released after assignment
-Warc-unsafe-retained-assign assigning retained object to %select{weak|unsafe_unretained}0 %select{property|variable}1 object will be released after assignment
-Warray-bounds array index %0 is past the end of the array (which contains %1 element%s2)
-Warray-bounds array index %0 is before the beginning of the array
-Warray-bounds 'static' has no effect on zero-length arrays
-Warray-bounds array argument is too small contains %0 elements, callee requires at least %1
-Warray-bounds-pointer-arithmetic the pointer incremented by %0 refers past the end of the array (that contains %1 element%s2)
-Warray-bounds-pointer-arithmetic the pointer decremented by %0 refers before the beginning of the array
-Wassign-enum integer constant not in range of enumerated type %0
-Watomic-property-with-user-defined-accessor writable atomic property %0 cannot pair a synthesized %select{getter|setter}1 with a user defined %select{getter|setter}2
-Wattributes unknown attribute %0 ignored
-Wauto-var-id 'auto' deduced as 'id' in declaration of %0
-Wavailability unknown platform %0 in availability macro
-Wavailability overriding method %select{introduced after|deprecated before|obsoleted before}0 overridden method on %1 (%2 vs. %3)
-Wavailability availability does not match previous declaration
-Wavailability overriding method cannot be unavailable on %0 when its overridden method is available
-Wavailability feature cannot be %select{introduced|deprecated|obsoleted}0 in %1 version %2 before it was %select{introduced|deprecated|obsoleted}3 in version %4 attribute ignored
-Wbad-function-cast cast from function call of type %0 to non-matching type %1
-Wbitfield-constant-conversion implicit truncation from %2 to bitfield changes value from %0 to %1
-Wbitwise-op-parentheses '&' within '|'
-Wbool-conversion "initialization of pointer of type %0 to null from a constant boolean " "expression
-Wbridge-cast %0 cannot bridge to %1
-Wbridge-cast %0 bridges to %1, not %2
-Wbuiltin-requires-header declaration of built-in function '%0' requires inclusion of the header stdio.h
-Wbuiltin-requires-header declaration of built-in function '%0' requires inclusion of the header setjmp.h
-Wbuiltin-requires-header declaration of built-in function '%0' requires inclusion of the header ucontext.h
-Wc++-compat %select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++
-Wc++11-compat explicit instantiation cannot be 'inline'
-Wc++11-compat explicit instantiation of %0 must occur at global scope
-Wc++11-compat explicit instantiation of %0 not in a namespace enclosing %1
-Wc++11-compat explicit instantiation of %q0 must occur in namespace %1
-Wc++11-narrowing constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11
-Wc++11-narrowing type %0 cannot be narrowed to %1 in initializer list in C++11
-Wc++11-narrowing non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11
-Wc++98-c++11-compat type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++1y
-Wc++98-c++11-compat use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++1y
-Wc++98-c++11-compat init-captures.def warn_cxx11_compat_init_capture : Warning "initialized lambda captures are incompatible with C++ standards " "before C++1y
-Wc++98-c++11-compat variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++1y
-Wc++98-c++11-compat constexpr function with no return statements is incompatible with C++ standards before C++1y
-Wc++98-c++11-compat multiple return statements in constexpr function is incompatible with C++ standards before C++1y
-Wc++98-c++11-compat variable templates are incompatible with C++ standards before C++1y
-Wc++98-compat substitution failure due to access control is incompatible with C++98
-Wc++98-compat %select{anonymous struct|union}0 member %1 with a non-trivial %select{constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}2 is incompatible with C++98
-Wc++98-compat enumeration type in nested name specifier is incompatible with C++98
-Wc++98-compat static data member %0 in union is incompatible with C++98
-Wc++98-compat default template arguments for a function template are incompatible with C++98
-Wc++98-compat scalar initialized from empty initializer list is incompatible with C++98
-Wc++98-compat befriending %1 without '%select{struct|interface|union|class|enum}0' keyword is incompatible with C++98
-Wc++98-compat use of null pointer as non-type template argument is incompatible with C++98
-Wc++98-compat friend declaration naming a member of the declaring class is incompatible with C++98
-Wc++98-compat non-class friend type %0 is incompatible with C++98
-Wc++98-compat befriending enumeration type %0 is incompatible with C++98
-Wc++98-compat use of non-static data member %0 in an unevaluated context is incompatible with C++98
-Wc++98-compat friend function %0 would be implicitly redefined in C++98
-Wc++98-compat %select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 outside namespace %2 is incompatible with C++98
-Wc++98-compat reference initialized from initializer list is incompatible with C++98
-Wc++98-compat redundant parentheses surrounding address non-type template argument are incompatible with C++98
-Wc++98-compat initialization of initializer_list object is incompatible with C++98
-Wc++98-compat use of 'template' keyword outside of a template is incompatible with C++98
-Wc++98-compat non-type template argument referring to %select{function|object}0 %1 with internal linkage is incompatible with C++98
-Wc++98-compat use of 'typename' outside of a template is incompatible with C++98
-Wc++98-compat passing object of trivial but non-POD type %0 through variadic %select{function|block|method|constructor}1 is incompatible with C++98
-Wc++98-compat goto would jump into protected scope in C++98
-Wc++98-compat constructor call from initializer list is incompatible with C++98
-Wc++98-compat 'auto' type specifier is incompatible with C++98
-Wc++98-compat delegating constructors are incompatible with C++98
-Wc++98-compat 'constexpr' specifier is incompatible with C++98
-Wc++98-compat inheriting constructors are incompatible with C++98
-Wc++98-compat explicit conversion functions are incompatible with C++98
-Wc++98-compat switch case would be in a protected scope in C++98
-Wc++98-compat '%0' type specifier is incompatible with C++98
-Wc++98-compat indirect goto might cross protected scopes in C++98
-Wc++98-compat-pedantic cast between pointer-to-function and pointer-to-object is incompatible with C++98
-Wc++98-compat-pedantic implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is incompatible with C++98
-Wcast-align cast from %0 to %1 increases required alignment from %2 to %3
-Wcast-of-sel-type cast of type %0 to %1 is deprecated use sel_getName instead
-Wchar-subscripts array subscript is of type 'char'
-Wconditional-uninitialized variable %0 may be uninitialized when %select{used here|captured by block}1
-Wconstant-logical-operand use of logical '%0' with constant operand
-Wconstexpr-not-const 'constexpr' non-static member function will not be implicitly 'const' in C++1y add 'const' to avoid a change in behavior
-Wconsumed state of variable '%0' must match at the entry and exit of loop
-Wconsumed parameter '%0' not in expected state when the function returns: expected '%1', observed '%2'
-Wconsumed argument not in expected state expected '%0', observed '%1'
-Wconsumed invalid invocation of method '%0' on a temporary object while it is in the '%1' state
-Wconsumed return state set for an unconsumable type '%0'
-Wconsumed consumed analysis attribute is attached to member of class '%0' which isn't marked as consumable
-Wconsumed invalid invocation of method '%0' on object '%1' while it is in the '%2' state
-Wconsumed return value not in expected state expected '%0', observed '%1'
-Wconversion implicit conversion discards imaginary component: %0 to %1
-Wconversion non-type template argument with value '%0' converted to '%1' for unsigned template parameter of type %2
-Wconversion implicit conversion loses floating-point precision: %0 to %1
-Wconversion implicit conversion loses integer precision: %0 to %1
-Wconversion non-type template argument value '%0' truncated to '%1' for template parameter of type %2
-Wconversion implicit conversion turns vector to scalar: %0 to %1
-Wconversion implicit conversion turns floating-point number into integer: %0 to %1
-Wcovered-switch-default default label in switch which covers all enumeration values
-Wcustom-atomic-properties atomic by default property %0 has a user defined %select{getter|setter}1 (property should be marked 'atomic' if this is intended)
-Wdangling-field initializing pointer member %0 with the stack address of parameter %1
-Wdangling-field binding reference %select{|subobject of }1member %0 to a temporary value
-Wdangling-field binding reference member %0 to stack allocated parameter %1
-Wdangling-initializer-list array backing the initializer list will be destroyed at the end of %select{the full-expression|the constructor}0
-Wdelete-incomplete deleting pointer to incomplete type %0 may cause undefined behavior
-Wdelete-non-virtual-dtor delete called on %0 that is abstract but has non-virtual destructor
-Wdelete-non-virtual-dtor delete called on %0 that has virtual functions but non-virtual destructor
-Wdeprecated access declarations are deprecated use using declarations instead
-Wdeprecated definition of implicit copy %select{constructor|assignment operator}1 for %0 is deprecated because it has a user-declared %select{copy %select{assignment operator|constructor}1|destructor}2
-Wdeprecated dynamic exception specifications are deprecated
-Wdeprecated-increment-bool incrementing expression of type bool is deprecated
-Wdeprecated-objc-isa-usage assignment to Objective-C's isa is deprecated in favor of object_setClass()
-Wdeprecated-objc-isa-usage direct access to Objective-C's isa is deprecated in favor of object_getClass()
-Wdeprecated-objc-pointer-introspection bitmasking for introspection of Objective-C object pointers is strongly discouraged
-Wdeprecated-objc-pointer-introspection-performSelector warn_objc_pointer_masking.Text
-Wdeprecated-writable-strings dummy warning to enable -fconst-strings
-Wdirect-ivar-access instance variable %0 is being directly accessed
-Wdistributed-object-modifiers conflicting distributed object modifiers on return type in implementation of %0
-Wdistributed-object-modifiers conflicting distributed object modifiers on parameter type in implementation of %0
-Wdivision-by-zero division by zero is undefined
-Wdivision-by-zero remainder by zero is undefined
-Wdocumentation parameter '%0' not found in the function declaration
-Wdocumentation not a Doxygen trailing comment
-Wduplicate-enum element %0 has been implicitly assigned %1 which another element has been assigned
-Wduplicate-method-match multiple declarations of method %0 found and ignored
-Wdynamic-class-memaccess %select{destination for|source of|first operand of|second operand of}0 this %1 call is a pointer to dynamic class %2 vtable pointer will be %select{overwritten|copied|moved|compared}3
-Wempty-body switch statement has empty body
-Wempty-body for loop has empty body
-Wempty-body if statement has empty body
-Wempty-body range-based for loop has empty body
-Wempty-body while loop has empty body
-Wenum-compare comparison of two values with different enumeration types%diff{ ($ and $)|}0,1
-Wenum-conversion implicit conversion from enumeration type %0 to different enumeration type %1
-Wexit-time-destructors declaration requires an exit-time destructor
-Wexplicit-ownership-type method parameter of type %0 with no explicit ownership
-Wextern-c-compat %select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++
-Wextern-initializer 'extern' variable has an initializer
-Wfloat-equal comparing floating point with == or != is unsafe
-Wformat "data argument position '%0' exceeds the number of data arguments (%1)
-Wformat position arguments in format strings start counting at 1 (not 0)
-Wformat invalid position specified for %select{field width|field precision}0
-Wformat cannot mix positional and non-positional arguments in format string
-Wformat values of type '%0' should not be used as format arguments add an explicit cast to %1 instead
-Wformat format specifies type %0 but the argument has type %1
-Wformat zero field width in scanf format string is unused
-Wformat no closing ']' for '%%[' in scanf format string
-Wformat format string should not be a wide string
-Wformat format string contains '\\0' within the string body
-Wformat '%select{*|.*}0' specified field %select{width|precision}0 is missing a matching 'int' argument
-Wformat field %select{width|precision}0 should have type %1, but argument has type %2
-Wformat %select{field width|precision}0 used with '%1' conversion specifier, resulting in undefined behavior
-Wformat format string missing
-Wformat incomplete format specifier
-Wformat flag '%0' results in undefined behavior with '%1' conversion specifier
-Wformat flag '%0' is ignored when flag '%1' is present
-Wformat more '%%' conversions than data arguments
-Wformat length modifier '%0' results in undefined behavior or no effect with '%1' conversion specifier
-Wformat-extra-args data argument not used by format string
-Wformat-invalid-specifier invalid conversion specifier '%0'
-Wformat-nonliteral format string is not a string literal
-Wformat-security format string is not a string literal (potentially insecure)
-Wformat-zero-length format string is empty
-Wgcc-compat GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier
-Wglobal-constructors declaration requires a global constructor
-Wglobal-constructors declaration requires a global destructor
-Wgnu-conditional-omitted-operand use of GNU ?: conditional expression extension, omitting middle operand
-Wheader-hygiene using namespace directive in global context in header
-Widiomatic-parentheses using the result of an assignment as a condition without parentheses
-Wignored-attributes 'malloc' attribute only applies to functions returning a pointer type
-Wignored-attributes %0 attribute only applies to %select{functions|unions|variables and functions|functions and methods|parameters|functions, methods and blocks|functions, methods, and classes|functions, methods, and parameters|classes|variables|methods|variables, functions and labels|fields and global variables|structs|variables, functions and tag types|thread-local variables|variables and fields|variables, data members and tag types|types and namespaces|Objective-C interfaces}1
-Wignored-attributes '%0' attribute cannot be specified on a definition
-Wignored-attributes __weak attribute cannot be specified on an automatic variable when ARC is not enabled
-Wignored-attributes Objective-C GC does not allow weak variables on the stack
-Wignored-attributes __weak attribute cannot be specified on a field declaration
-Wignored-attributes attribute %0 cannot be applied to %select{functions|Objective-C method}1 without return value
-Wignored-attributes attribute declaration must precede definition
-Wignored-attributes attribute %0 is ignored, place it after \"%select{class|struct|union|interface|enum}1\" to apply attribute to type declaration
-Wignored-attributes __declspec attribute %0 is not supported
-Wignored-attributes attribute %0 ignored, because it cannot be applied to a type
-Wignored-attributes attribute %0 after definition is ignored
-Wignored-attributes %0 attribute ignored
-Wignored-attributes 'sentinel' attribute only supported for variadic %select{functions|blocks}0
-Wignored-attributes 'sentinel' attribute requires named arguments
-Wignored-attributes '%0' only applies to %select{function|pointer|Objective-C object or block pointer}1 types type here is %2
-Wignored-attributes 'nonnull' attribute applied to function with no pointer arguments
-Wignored-attributes %0 attribute can only be applied to instance variables or properties
-Wignored-attributes unknown visibility %0
-Wignored-attributes %0 calling convention ignored on variadic function
-Wignored-attributes %0 only applies to variables with static storage duration and functions
-Wignored-attributes ibaction attribute can only be applied to Objective-C instance methods
-Wignored-attributes #pramga ms_struct can not be used with dynamic classes or structures
-Wignored-attributes transparent union definition must contain at least one field transparent_union attribute ignored
-Wignored-attributes first field of a transparent union cannot have %select{floating point|vector}0 type %1 transparent_union attribute ignored
-Wignored-attributes 'gnu_inline' attribute requires function to be marked 'inline', attribute ignored
-Wignored-attributes calling convention %0 ignored for this target
-Wignored-attributes transparent_union attribute can only be applied to a union definition attribute ignored
-Wignored-attributes %select{alignment|size}0 of field %1 (%2 bits) does not match the %select{alignment|size}0 of the first field in transparent union transparent_union attribute ignored
-Wignored-attributes attribute %0 is already applied
-Wignored-attributes %0 attribute ignored for field of type %1
-Wignored-attributes %0 attribute ignored when parsing type
-Wignored-attributes %0 attribute only applies to %select{functions|methods|properties}1 that return %select{an Objective-C object|a pointer|a non-retainable pointer}2
-Wignored-attributes %0 attribute only applies to %select{Objective-C object|pointer}1 parameters
-Wignored-attributes attribute %0 is already applied with different parameters
-Wignored-attributes %0 attribute argument not supported: %1
-Wignored-qualifiers "'%0' type qualifier%s1 on return type %plural{1:has|:have}1 no effect
-Wignored-qualifiers ARC %select{unused|__unsafe_unretained|__strong|__weak|__autoreleasing}0 lifetime qualifier on return type is ignored
-Wimplicit-atomic-properties property is assumed atomic by default
-Wimplicit-atomic-properties property is assumed atomic when auto-synthesizing the property
-Wimplicit-fallthrough fallthrough annotation in unreachable code
-Wimplicit-fallthrough unannotated fall-through between switch labels
-Wimplicit-fallthrough fallthrough annotation does not directly precede switch label
-Wimplicit-function-declaration implicit declaration of function %0
-Wimplicit-function-declaration use of unknown builtin %0
-Wimplicit-retain-self "block implicitly retains 'self' explicitly mention 'self' to indicate this is intended behavior
-Wincompatible-library-redeclaration incompatible redeclaration of library function %0
-Wincomplete-implementation method definition for %0 not found
-Winherited-variadic-ctor inheriting constructor does not inherit ellipsis
-Winitializer-overrides subobject initialization overrides initialization of other fields within its enclosing subobject
-Winitializer-overrides initializer overrides prior initialization of this subobject
-Wint-to-pointer-cast cast to %1 from smaller integer type %0
-Wint-to-void-pointer-cast cast to %1 from smaller integer type %0
-Winvalid-iboutlet IBOutletCollection properties should be copy/strong and not assign
-Winvalid-iboutlet %select{instance variable|property}2 with %0 attribute must be an object type (invalid %1)
-Winvalid-noreturn function %0 declared 'noreturn' should not return
-Winvalid-noreturn function declared 'noreturn' should not return
-Wlarge-by-value-copy return value of %0 is a large (%1 bytes) pass-by-value object pass it by reference instead ?
-Wlarge-by-value-copy %0 is a large (%1 bytes) pass-by-value argument pass it by reference instead ?
-Wliteral-conversion implicit conversion from %0 to %1 changes value from %2 to %3
-Wliteral-range magnitude of floating-point constant too large for type %0 maximum is %1
-Wliteral-range magnitude of floating-point constant too small for type %0 minimum is %1
-Wlogical-not-parentheses logical not is only applied to the left hand side of this comparison
-Wlogical-op-parentheses '&&' within '||'
-Wloop-analysis variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body
-Wloop-analysis variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body
-Wmethod-signatures conflicting parameter types in implementation of %0: %1 vs %2
-Wmethod-signatures conflicting return type in implementation of %0: %1 vs %2
-Wmicrosoft extra qualification on member %0
-Wmismatched-method-attributes attributes on method implementation and its declaration must match
-Wmismatched-parameter-types conflicting parameter types in implementation of %0%diff{: $ vs $|}1,2
-Wmismatched-return-types conflicting return type in implementation of %0%diff{: $ vs $|}1,2
-Wmissing-braces suggest braces around initialization of subobject
-Wmissing-declarations '%0' ignored on this declaration
-Wmissing-field-initializers missing field '%0' initializer
-Wmissing-method-return-type method has no return type specified defaults to 'id'
-Wmissing-noreturn block could be declared with attribute 'noreturn'
-Wmissing-noreturn %select{function|method}0 %1 could be declared with attribute 'noreturn'
-Wmissing-prototypes no previous prototype for function %0
-Wmissing-variable-declarations no previous extern declaration for non-static variable %0
-Wmultiple-move-vbase defaulted move assignment operator of %0 will move assign virtual base class %1 multiple times
-Wnested-anon-types anonymous types declared in an anonymous union/struct are an extension
-Wnon-literal-null-conversion "expression which evaluates to zero treated as a null pointer constant of " "type %0
-Wnon-pod-varargs cannot pass object of %select{non-POD|non-trivial}0 type %1 through variadic %select{function|block|method|constructor}2 call will abort at runtime
-Wnon-pod-varargs cannot pass %select{non-POD|non-trivial}0 object of type %1 to variadic %select{function|block|method|constructor}2 expected type from format string was %3
-Wnon-pod-varargs second argument to 'va_arg' is of ARC ownership-qualified type %0
-Wnon-pod-varargs second argument to 'va_arg' is of non-POD type %0
-Wnon-virtual-dtor %0 has virtual functions but non-virtual destructor
-Wnonnull null passed to a callee which requires a non-null argument
-Wnull-arithmetic comparison between NULL and non-pointer %select{(%1 and NULL)|(NULL and %1)}0
-Wnull-arithmetic use of NULL in arithmetic operation
-Wnull-dereference indirection of non-volatile null pointer will be deleted, not trap
-Wobjc-autosynthesis-property-ivar-name-match autosynthesized property %0 will use %select{|synthesized}1 instance variable %2, not existing instance variable %3
-Wobjc-forward-class-redefinition redefinition of forward class %0 of a typedef name of an object type is ignored
-Wobjc-interface-ivars declaration of instance variables in the interface is deprecated
-Wobjc-literal-compare direct comparison of %select{an array literal|a dictionary literal|a numeric literal|a boxed expression|}0 has undefined behavior
-Wobjc-literal-missing-atsign string literal must be prefixed by '@'
-Wobjc-method-access class method %objcclass0 not found (return type defaults to 'id')
-Wobjc-method-access instance method %objcinstance0 not found (return type defaults to 'id')
-Wobjc-method-access instance method %0 is being used on 'Class' which is not in the root class
-Wobjc-method-access instance method %0 found instead of class method %1
-Wobjc-method-access class method %objcclass0 not found (return type defaults to 'id') did you mean %objcclass2?
-Wobjc-method-access instance method %objcinstance0 not found (return type defaults to 'id') did you mean %objcinstance2?
-Wobjc-missing-property-synthesis "auto property synthesis is synthesizing property not explicitly synthesized
-Wobjc-missing-super-calls method possibly missing a [super %0] call
-Wobjc-noncopy-retain-block-property "retain'ed block property does not copy the block " "- use copy attribute instead
-Wobjc-nonunified-exceptions can not catch an exception thrown with @throw in C++ in the non-unified exception model
-Wobjc-property-implementation property %0 requires method %1 to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation
-Wobjc-property-implementation property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this category
-Wobjc-property-implicit-mismatch "primary property declaration is implicitly strong while redeclaration in class extension is weak
-Wobjc-property-matches-cocoa-ownership-rule property's synthesized getter follows Cocoa naming convention for returning 'owned' objects
-Wobjc-property-no-attribute no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed
-Wobjc-property-no-attribute default property attribute 'assign' not appropriate for non-GC object
-Wobjc-property-synthesis "auto property synthesis will not synthesize property '%0' because it cannot share an ivar with another synthesized property
-Wobjc-property-synthesis auto property synthesis will not synthesize property '%0' because it is 'readwrite' but it will be synthesized 'readonly' via another property
-Wobjc-protocol-method-implementation category is implementing a method which will also be implemented by its primary class
-Wobjc-protocol-property-synthesis auto property synthesis will not synthesize property declared in a protocol
-Wobjc-redundant-literal-use using %0 with a literal is redundant
-Wobjc-root-class class %0 defined without specifying a base class
-Wobjc-string-compare direct comparison of a string literal has undefined behavior
-Wobjc-string-concatenation concatenated NSString literal for an NSArray expression - possibly missing a comma
-Wover-aligned type %0 requires %1 bytes of alignment and the default allocator only guarantees %2 bytes
-Woverloaded-shift-op-parentheses overloaded operator %select{|}0 has lower precedence than comparison operator
-Woverloaded-virtual %q0 hides overloaded virtual %select{function|functions}1
-Woverriding-method-mismatch conflicting distributed object modifiers on parameter type in declaration of %0
-Woverriding-method-mismatch conflicting parameter types in declaration of %0: %1 vs %2
-Woverriding-method-mismatch conflicting variadic declaration of method and its implementation
-Woverriding-method-mismatch conflicting return type in declaration of %0: %1 vs %2
-Woverriding-method-mismatch conflicting distributed object modifiers on return type in declaration of %0
-Woverriding-method-mismatch conflicting return type in declaration of %0%diff{: $ vs $|}1,2
-Woverriding-method-mismatch conflicting parameter types in declaration of %0%diff{: $ vs $|}1,2
-Wpacked packed attribute is unnecessary for %0
-Wpadded padding size of %0 with %1 %select{byte|bit}2%select{|s}3 to alignment boundary
-Wpadded padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%select{|s}4 to align %5
-Wpadded padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%select{|s}4 to align anonymous bit-field
-Wparentheses %0 has lower precedence than %1 %1 will be evaluated first
-Wparentheses using the result of an assignment as a condition without parentheses
-Wparentheses operator '?:' has lower precedence than '%0' '%0' will be evaluated first
-Wparentheses-equality equality comparison with extraneous parentheses
-Wpointer-arith subtraction of pointers to type %0 of zero size has undefined behavior
-Wpredefined-identifier-outside-function predefined identifier is only valid inside function
-Wprivate-extern use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated
-Wprotocol method %0 in protocol not implemented
-Wprotocol-property-synthesis-ambiguity property of type %0 was selected for synthesis
-Wreadonly-iboutlet-property readonly IBOutlet property '%0' when auto-synthesized may not work correctly with 'nib' loader
-Wreadonly-setter-attrs property attributes '%0' and '%1' are mutually exclusive
-Wreceiver-expr receiver type %0 is not 'id' or interface pointer, consider casting it to 'id'
-Wreceiver-forward-class receiver type %0 for instance message is a forward declaration
-Wreceiver-is-weak "weak %select{receiver|property|implicit property}0 may be unpredictably set to nil
-Wreinterpret-base-class 'reinterpret_cast' %select{from|to}3 class %0 %select{to|from}3 its %select{virtual base|base at non-zero offset}2 %1 behaves differently from 'static_cast'
-Wreorder %select{field|base class}0 %1 will be initialized after %select{field|base}2 %3
-Wrequires-super-attribute %0 attribute cannot be applied to %select{methods in protocols|dealloc}1
-Wreturn-stack-address returning address of label, which is local
-Wreturn-stack-address returning reference to local temporary object
-Wreturn-stack-address address of stack memory associated with local variable %0 returned
-Wreturn-stack-address returning address of local temporary object
-Wreturn-stack-address reference to stack memory associated with local variable %0 returned
-Wreturn-type non-void %select{function|method}1 %0 should return a value, DefaultError
-Wreturn-type control may reach end of non-void function
-Wreturn-type control reaches end of non-void function
-Wreturn-type-c-linkage %0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C
-Wreturn-type-c-linkage %0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C
-Wsection section does not match previous declaration
-Wselector creating selector for nonexistent method %0
-Wselector-type-mismatch multiple selectors named %0 found
-Wself-assign explicitly assigning a variable of type %0 to itself
-Wself-assign-field assigning %select{field|instance variable}0 to itself
-Wsentinel not enough variable arguments in %0 declaration to fit a sentinel
-Wsentinel "missing sentinel in %select{function call|method dispatch|block call}0
-Wshadow declaration shadows a %select{" "local variable|" "variable in %2|" "static data member of %2|" "field of %2}1
-Wshadow-ivar local declaration of %0 hides instance variable
-Wshift-count-negative shift count is negative
-Wshift-count-overflow shift count = width of type
-Wshift-op-parentheses operator '%0' has lower precedence than '%1' '%1' will be evaluated first
-Wshift-overflow signed shift result (%0) requires %1 bits to represent, but %2 only has %3 bits
-Wshift-sign-overflow signed shift result (%0) sets the sign bit of the shift expression's type (%1) and becomes negative
-Wshorten-64-to-32 implicit conversion loses integer precision: %0 to %1
-Wsign-compare comparison of integers of different signs: %0 and %1
-Wsign-conversion implicit conversion changes signedness: %0 to %1
-Wsign-conversion operand of ? changes signedness: %0 to %1
-Wsizeof-array-argument sizeof on array function parameter will return size of %0 instead of %1
-Wsizeof-array-decay sizeof on pointer operation will return size of %0 instead of %1
-Wsizeof-pointer-memaccess '%0' call operates on objects of type %1 while the size is based on a " "different type %2
-Wsizeof-pointer-memaccess argument to 'sizeof' in %0 call is the same pointer type %1 as the %select{destination|source}2 expected %3 or an explicit length
-Wsometimes-uninitialized variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2
-Wstatic-local-in-inline non-constant static local variable in inline function may be different in different files
-Wstatic-self-init static variable %0 is suspiciously used within its own initialization
-Wstrict-selector-match multiple methods named %0 found
-Wstring-compare result of comparison against %select{a string literal|@encode}0 is unspecified (use strncmp instead)
-Wstring-conversion implicit conversion turns string literal into bool: %0 to %1
-Wstring-plus-char adding %0 to a string pointer does not append to the string
-Wstring-plus-int adding %0 to a string does not append to the string
-Wstrlcpy-strlcat-size size argument in %0 call appears to be size of the source expected the size of the destination
-Wstrncat-size the value of the size argument to 'strncat' is wrong
-Wstrncat-size the value of the size argument in 'strncat' is too large, might lead to a " "buffer overflow
-Wstrncat-size size argument in 'strncat' call appears " "to be size of the source
-Wsuper-class-method-mismatch method parameter type %diff{$ does not match super class method parameter type $|does not match super class method parameter type}0,1
-Wswitch enumeration value %0 not handled in switch
-Wswitch overflow converting case value to switch condition type (%0 to %1)
-Wswitch enumeration values %0 and %1 not handled in switch
-Wswitch case value not in enumerated type %0
-Wswitch enumeration values %0, %1, and %2 not handled in switch
-Wswitch %0 enumeration values not handled in switch: %1, %2, %3...
-Wswitch-enum enumeration value %0 not explicitly handled in switch
-Wswitch-enum %0 enumeration values not explicitly handled in switch: %1, %2, %3...
-Wswitch-enum enumeration values %0 and %1 not explicitly handled in switch
-Wswitch-enum enumeration values %0, %1, and %2 not explicitly handled in switch
-Wtautological-compare %select{self-|array }0comparison always evaluates to %select{false|true|a constant}1
-Wtautological-compare comparison of unsigned%select{| enum}2 expression %0 is always %1
-Wtautological-compare comparison of %0 unsigned%select{| enum}2 expression is always %1
-Wtautological-constant-out-of-range-compare comparison of constant %0 with expression of type %1 is always %select{false|true}2
-Wthread-safety-analysis expecting mutex '%0' to be locked at the end of function
-Wthread-safety-analysis %select{reading|writing}1 the value pointed to by '%0' requires locking %select{any mutex|any mutex exclusively}1
-Wthread-safety-analysis unlocking '%0' that was not locked
-Wthread-safety-analysis mutex '%0' is locked exclusively and shared in the same scope
-Wthread-safety-analysis expecting mutex '%0' to be locked at start of each loop
-Wthread-safety-analysis %select{reading|writing}2 variable '%0' requires locking %select{'%1'|'%1' exclusively}2
-Wthread-safety-analysis %select{reading|writing}2 the value pointed to by '%0' requires locking %select{'%1'|'%1' exclusively}2
-Wthread-safety-analysis calling function '%0' requires %select{shared|exclusive}2 lock on '%1'
-Wthread-safety-analysis locking '%0' that is already locked
-Wthread-safety-analysis cannot resolve lock expression
-Wthread-safety-analysis cannot call function '%0' while mutex '%1' is locked
-Wthread-safety-analysis mutex '%0' is still locked at the end of function
-Wthread-safety-analysis mutex '%0' is not locked on every path through here
-Wthread-safety-analysis %select{reading|writing}1 variable '%0' requires locking %select{any mutex|any mutex exclusively}1
-Wthread-safety-attributes %0 attribute only applies to %select{fields and global variables|functions and methods|classes and structs}1
-Wthread-safety-attributes '%0' only applies to pointer types type here is %1
-Wthread-safety-attributes %0 attribute can only be applied in a context annotated with 'lockable' attribute
-Wthread-safety-attributes ignoring %0 attribute because its argument is invalid
-Wthread-safety-attributes %0 attribute requires arguments whose type is annotated with 'lockable' attribute type here is '%1'
-Wthread-safety-attributes %0 attribute requires arguments that are class type or point to class type type here is '%1'
-Wthread-safety-beta Thread safety beta warning.
-Wthread-safety-precise calling function '%0' requires %select{shared|exclusive}2 lock on '%1'
-Wthread-safety-precise %select{reading|writing}2 the value pointed to by '%0' requires locking %select{'%1'|'%1' exclusively}2
-Wthread-safety-precise %select{reading|writing}2 variable '%0' requires locking %select{'%1'|'%1' exclusively}2
-Wtype-safety argument type %0 doesn't match specified '%1' type tag %select{that requires %3|}2
-Wtype-safety specified %0 type tag requires a null pointer
-Wtype-safety this type tag was not designed to be used with this function
-Wundeclared-selector undeclared selector %0 did you mean %1?
-Wundeclared-selector undeclared selector %0
-Wundefined-inline inline function %q0 is not defined
-Wundefined-internal %select{function|variable}0 %q1 has internal linkage but is not defined
-Wundefined-reinterpret-cast reinterpret_cast from %0 to %1 has undefined behavior
-Wundefined-reinterpret-cast dereference of type %1 that was reinterpret_cast from type %0 has undefined behavior
-Wuninitialized reference %0 is not yet bound to a value when used within its own initialization
-Wuninitialized block pointer variable %0 is uninitialized when captured by block
-Wuninitialized field %0 is uninitialized when used here
-Wuninitialized reference %0 is not yet bound to a value when used here
-Wuninitialized variable %0 is uninitialized when %select{used here|captured by block}1
-Wuninitialized variable %0 is uninitialized when used within its own initialization
-Wunneeded-internal-declaration 'static' function %0 declared in header file should be declared 'static inline'
-Wunneeded-internal-declaration %select{function|variable}0 %1 is not needed and will not be emitted
-Wunneeded-member-function member function %0 is not needed and will not be emitted
-Wunreachable-code will never be executed
-Wunsequenced multiple unsequenced modifications to %0
-Wunsequenced unsequenced modification and access to %0
-Wunsupported-friend dependent nested name specifier '%0' for friend class declaration is not supported turning off access control for %1
-Wunsupported-friend dependent nested name specifier '%0' for friend template declaration is not supported ignoring this friend declaration
-Wunsupported-visibility target does not support 'protected' visibility using 'default'
-Wunused-comparison %select{equality|inequality}0 comparison result unused
-Wunused-const-variable unused variable %0
-Wunused-exception-parameter unused exception parameter %0
-Wunused-function unused function %0
-Wunused-label unused label %0
-Wunused-member-function unused member function %0
-Wunused-parameter unused parameter %0
-Wunused-private-field private field %0 is not used
-Wunused-property-ivar ivar %0 which backs the property is not referenced in this property's accessor
-Wunused-result ignoring return value of function declared with warn_unused_result attribute
-Wunused-value expression result unused should this cast be to 'void'?
-Wunused-value expression result unused
-Wunused-value ignoring return value of function declared with %0 attribute
-Wunused-variable unused variable %0
-Wunused-volatile-lvalue expression result unused assign into a variable to force a volatile load
-Wused-but-marked-unused %0 was marked unused but was used
-Wuser-defined-literals user-defined literal suffixes not starting with '_' are reserved%select{ no literal will invoke this operator|}0
-Wvarargs second argument to 'va_arg' is of promotable type %0 this va_arg has undefined behavior because arguments will be promoted to %1
-Wvarargs 'va_start' has undefined behavior with reference types
-Wvarargs second parameter of 'va_start' not last named argument
-Wvector-conversion incompatible vector types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2
-Wvexing-parse empty parentheses interpreted as a function declaration
-Wvexing-parse parentheses were disambiguated as a function declaration
-Wvisibility declaration of %0 will not be visible outside of this function
-Wvisibility redefinition of %0 will not be visible outside of this function
-Wvla variable length array used
-Wvla-extension variable length arrays are a C99 feature
-Wweak-template-vtables explicit template instantiation %0 will emit a vtable in every translation unit
-Wweak-vtables %0 has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit

Lexer Warnings

Warning Message
-W#pragma-messages %0
-W#warnings %0
-W#warnings %0
-Wambiguous-macro ambiguous expansion of macro %0
-Wauto-import treating #%select{include|import|include_next|__include_macros}0 as an import of module '%1'
-Wbackslash-newline-escape backslash and newline separated by space
-Wc++11-compat identifier after literal will be treated as a user-defined literal suffix in C++11
-Wc++11-compat '%0' is a keyword in C++11
-Wc++98-c++11-compat digit separators are incompatible with C++ standards before C++1y
-Wc++98-c++11-compat-pedantic binary integer literals are incompatible with C++ standards before C++1y
-Wc++98-compat raw string literals are incompatible with C++98
-Wc++98-compat unicode literals are incompatible with C++98
-Wc++98-compat universal character name referring to a control character is incompatible with C++98
-Wc++98-compat '::' is treated as digraph ':' (aka '[') followed by ':' in C++98
-Wc++98-compat using this character in an identifier is incompatible with C++98
-Wc++98-compat specifying character '%0' with a universal character name is incompatible with C++98
-Wc++98-compat-pedantic variadic macros are incompatible with C++98
-Wc++98-compat-pedantic #line number greater than 32767 is incompatible with C++98
-Wc++98-compat-pedantic C++98 requires newline at end of file
-Wc++98-compat-pedantic empty macro arguments are incompatible with C++98
-Wc99-compat unicode literals are incompatible with C99
-Wc99-compat %select{using this character in an identifier|starting an identifier with this character}0 is incompatible with C99
-Wcomment '/*' within block comment
-Wcomment escaped newline between */ characters at block comment end
-Wdisabled-macro-expansion disabled expansion of recursive macro
-Wheader-guard %0 is used as a header guard here, followed by #define of a different macro
-Wignored-attributes unknown attribute '%0'
-Wincomplete-module header '%0' is included in module '%1' but not listed in module map
-Wincomplete-umbrella umbrella header for module '%0' does not include header '%1'
-Winvalid-token-paste pasting formed '%0', an invalid preprocessing token, DefaultError
-Wmalformed-warning-check __has_warning expected option name (e.g. \"-Wundef\")
-Wnewline-eof no newline at end of file
-Wnull-character null character ignored
-Wnull-character null character(s) preserved in string literal
-Wnull-character null character(s) preserved in character literal
-Wtrigraphs ignored trigraph would end block comment
-Wtrigraphs trigraph ignored
-Wundef %0 is not defined, evaluates to 0
-Wunicode universal character names are only valid in C99 or C++ treating as '\\' followed by identifier
-Wunicode \\%0 used with no following hex digits treating as '\\' followed by identifier
-Wunicode incomplete universal character name treating as '\\' followed by identifier
-Wunicode universal character name refers to a surrogate character
-Wunknown-pragmas unknown pragma ignored
-Wunknown-pragmas pragma STDC FENV_ACCESS ON is not supported, ignoring pragma
-Wunused-macros macro is not used

Parser Warnings

Warning Message
-Warc-bridge-casts-disallowed-in-nonarc '%0' casts have no effect when not using ARC
-Wattributes unknown __declspec attribute %0 ignored
-Wavailability 'unavailable' availability overrides all other availability information
-Wc++11-compat use of right-shift operator ('') in template argument will require parentheses in C++11
-Wc++11-compat 'auto' storage class specifier is redundant and incompatible with C++11
-Wc++98-c++11-compat 'decltype(auto)' type specifier is incompatible with C++ standards before C++1y
-Wc++98-compat range-based for loop is incompatible with C++98
-Wc++98-compat alias declarations are incompatible with C++98
-Wc++98-compat in-class initialization of non-static data members is incompatible with C++98
-Wc++98-compat defaulted function definitions are incompatible with C++98
-Wc++98-compat rvalue references are incompatible with C++98
-Wc++98-compat reference qualifiers on functions are incompatible with C++98
-Wc++98-compat inline namespaces are incompatible with C++98
-Wc++98-compat generalized initializer lists are incompatible with C++98
-Wc++98-compat trailing return types are incompatible with C++98
-Wc++98-compat enumeration types with a fixed underlying type are incompatible with C++98
-Wc++98-compat alignof expressions are incompatible with C++98
-Wc++98-compat '%0' keyword is incompatible with C++98
-Wc++98-compat 'decltype' type specifier is incompatible with C++98
-Wc++98-compat deleted function definitions are incompatible with C++98
-Wc++98-compat consecutive right angle brackets are incompatible with C++98 (use '> >')
-Wc++98-compat static_assert declarations are incompatible with C++98
-Wc++98-compat scoped enumerations are incompatible with C++98
-Wc++98-compat lambda expressions are incompatible with C++98
-Wc++98-compat attributes are incompatible with C++98
-Wc++98-compat 'alignas' is incompatible with C++98
-Wc++98-compat noexcept specifications are incompatible with C++98
-Wc++98-compat literal operators are incompatible with C++98
-Wc++98-compat noexcept expressions are incompatible with C++98
-Wc++98-compat 'nullptr' is incompatible with C++98
-Wc++98-compat-pedantic extra '' outside of a function is incompatible with C++98
-Wc++98-compat-pedantic extern templates are incompatible with C++98
-Wc++98-compat-pedantic commas at the end of enumerator lists are incompatible with C++98
-Wdangling-else add explicit braces to avoid dangling else
-Wdeprecated Use of 'long' with '__vector' is deprecated
-Wdeprecated-declarations use of C-style parameters in Objective-C method declarations is deprecated
-Wdeprecated-register 'register' storage class specifier is deprecated
-Wduplicate-decl-specifier duplicate '%0' declaration specifier
-Wextra-semi extra ';' after member function definition
-Wextra-tokens "extra tokens at the end of '#pragma omp %0' are ignored
-Wgcc-compat GCC does not allow %0 attribute in this position on a function definition
-Wignored-attributes attribute %0 ignored, because it is not attached to a declaration
-Wmicrosoft-exists dependent %select{__if_not_exists|__if_exists}0 declarations are ignored
-Wmissing-selector-name %0 used as the name of the previous parameter rather than as part of the selector
-Wsemicolon-before-method-body semicolon before method body is ignored
-Wsource-uses-openmp "unexpected '#pragma omp ...' in program
-Wstatic-inline-explicit-instantiation ignoring '%select{static|inline}0' keyword on explicit template instantiation
 
 

iOS -- warnings的更多相关文章

  1. iOS XCode启用/关闭Clang Warnings

    前言:warnings是编码中很重要的一个环节,编译器给出合理的warning能帮助开发者找到自己代码的问题,防止很多bug产生.  默认用XCode创建一个工程,会自动开启一些重要的warnings ...

  2. Xcode 7 warnings: object file was built for newer iOS version than being linked

    编译之后出现: ld: warning: object file xxxxx... was built for newer iOS version (8.1) than being linked (7 ...

  3. mono ios莫名其妙闪退的解决方法

    使用mono进行ios开发也有一年了,一直有个头疼的问题是闪退,而且闪退的时候并没有抛出明确的错误. 前两天在调试一个bug的时候,在序列化的时候又莫名其妙的闪退,后来在一位大神(博客地址)的指导下, ...

  4. iOS 正确选择图片加载方式

    正确选择图片加载方式能够对内存优化起到很大的作用,常见的图片加载方式有下面三种: //方法1 UIImage *imag1 = [UIImage imageNamed:@"image.png ...

  5. iOS编码规范

      The official raywenderlich.com Objective-C style guide.   This style guide outlines the coding con ...

  6. 25条提高iOS App性能的建议和技巧

    这篇文章来自iOS Tutorial Team 成员 Marcelo Fabri, 他是 Movile 的一个iOS开发者. Check out his personal website or fol ...

  7. iOS宏和__attribute__

    本文目录 iOS宏的经典用法 Apple的习惯 __attribute__ iOS宏的经典用法 1.常量宏.表达式宏 #define kTabBarH (49.0f) #define kScreenH ...

  8. 手把手教你ARC——iOS/Mac开发ARC入门和使用

    转载自:http://www.onevcat.com/2012/06/arc-hand-by-hand/ 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和 ...

  9. iOS中的预编译指令的初步探究

    目录 文件包含 #include #include_next #import 宏定义 #define #undef 条件编译 #if #else #endif #if define #ifdef #i ...

随机推荐

  1. Kinect for Windows V2和V1对照开发___深度数据获取并用OpenCV2.4.10显示

    V1深度分辨率:320x240 V2深度分辨率:512x424 1.  打开深度图像帧的方式 对于V1: hr = m_PNuiSensor->NuiImageStreamOpen( NUI_I ...

  2. java14 处理流

    二.处理流 .引用类型,保留数据+类型 序列化:将对象保存到文件或者字节数组中保存起来,叫序列化.输出流:ObjectOutputStream.writeObject(). 反序列化:从文件或者字节数 ...

  3. Labview 中的类

    一.创建一个空的类 在 LabVIEW 工程窗口里,鼠标右键菜单的新建栏中有一项,是创建类.类的结构和 LabVIEW 工程库是比较相近的:类的名字也作为名字空间:也可以为类中的 VI 设置访问权限等 ...

  4. 【转】开发者分享如何创造一款优秀的iOS游戏——2013-08-25 17

    http://game.dapps.net/gamedev/experience/889.html 创造出<Temple Run>的夫妻团队在高峰时期每天能够获得"好几万&quo ...

  5. Magento的布局(Layout),块(Block)和模板(Template)

    public function indexAction() { //remove our previous echo //echo 'Hello Index!'; $this->loadLayo ...

  6. xml_02

    1.xml 2.对于XML文档的约束   |-DTD      <!DOCTYPE 根元素 [       <!ELEMENT 元素名 (xx)>       <!ATTLIS ...

  7. 实现方法 C# button快捷键

    本文讲解了三种方法实现C# button快捷键,如Alt + *(按钮快捷键),Ctrl+*及其他组合键等. C# button快捷键之第一种:Alt + *(按钮快捷键) 在大家给button.la ...

  8. 在masterpage中添加对usercontrol的引用

    在masterpage中添加对usercontrol的引用的方式: <%@ Register Src="/_controltemplates/15/Excellent Employee ...

  9. 解构控制反转(IoC)和依赖注入(DI)

    1.控制反转 控制反转(Inversion of Control,IoC),简言之就是代码的控制器交由系统控制,而不是在代码内部,通过IoC,消除组件或者模块间的直接依赖,使得软件系统的开发更具柔性和 ...

  10. ios Object Encoding and Decoding with NSSecureCoding Protocol

    Object Encoding and Decoding with NSSecureCoding Protocol February 27, 2014 MISC NSCoding is a fanta ...