在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak、循环引用、不能运行之类的警告。 有代码洁癖的孩子们非常想消除他们, 今天就让我们来一次Fuck 警告。!
首先学会主要的语句
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
这里写出现警告的代码
#pragma clang diagnostic pop
这样就消除了方法弃用的警告。
同理, 大家能够在下边搜索到相应的警告, 这样 就能够把前边的字串填入上边的ignored的后边, 然后包住你的代码, 就OK了
原网址: http://fuckingclangwarnings.com/
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 isinitializedby a temporaryarray, which will be destroyed at the endof 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|instancevariable}0 %1isaccessed multiple times in this %select{function|method|block|lambda}2 but may be unpredictably setto nil assign to a strong variabletokeep the object alive
-Warc-retain-cycles capturing %0 strongly in this blockis likely toleadto a retain cycle
-Warc-unsafe-retained-assign assigning retained objecttounsafe 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}0to a weak %select{property|variable}1object will be released after assignment
-Warc-unsafe-retained-assign assigning retained objectto %select{weak|unsafe_unretained}0 %select{property|variable}1object will be released after assignment
-Warray-bounds arrayindex %0is past the endof the array (which contains %1element%s2)
-Warray-bounds arrayindex %0isbefore the beginningof the array
-Warray-bounds ‘static‘ has no effect on zero-length arrays
-Warray-bounds array argument is too small contains %0 elements, callee requires atleast %1
-Warray-bounds-pointer-arithmetic the pointer incremented by %0 refers past the endof the array (that contains %1element%s2)
-Warray-bounds-pointer-arithmetic the pointer decremented by %0 refers before the beginningof the array
-Wassign-enum integerconstantnotinrangeof enumerated type %0
-Watomic-property-with-user-defined-accessor writable atomic property %0 cannot pair a synthesized %select{getter|setter}1with a user defined %select{getter|setter}2
-Wattributes unknownattribute %0 ignored
-Wauto-var-id‘auto‘ deduced as‘id‘in declaration of %0
-Wavailability unknown platform %0inavailability macro
-Wavailability overriding method %select{introduced after|deprecated before|obsoleted before}0 overridden method on %1 (%2 vs. %3)
-Wavailability availability does notmatch previous declaration
-Wavailability overriding method cannot be unavailable on %0when its overridden method is available
-Wavailability feature cannot be %select{introduced|deprecated|obsoleted}0in %1version %2before it was %select{introduced|deprecated|obsoleted}3inversion %4attribute ignored
-Wbad-function-castcastfromfunctioncalloftype %0to non-matching type %1
-Wbitfield-constant-conversion implicit truncation from %2to bitfield changes valuefrom %0to %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 withC++ standards " "beforeC++1y
-Wc++98-c++11-compat variable declaration in a constexpr %select{function|constructor}0is incompatible withC++ standards beforeC++1y
-Wc++98-c++11-compat constexpr functionwithnoreturn statements is incompatible withC++ standards beforeC++1y
-Wc++98-c++11-compat multiple return statements in constexpr functionis incompatible withC++ standards beforeC++1y
-Wc++98-c++11-compat variable templates are incompatible withC++ standards beforeC++1y
-Wc++98-compat substitution failure due toaccess control is incompatible withC++98
-Wc++98-compat %select{anonymous struct|union}0member %1with a non-trivial %select{constructor|copy constructor|moveconstructor|copy assignment operator|move assignment operator|destructor}2is incompatible withC++98
-Wc++98-compat enumeration typeinnestedname specifier is incompatible withC++98
-Wc++98-compat staticdatamember %0inunionis incompatible withC++98
-Wc++98-compat defaulttemplate arguments for a functiontemplateare incompatible withC++98
-Wc++98-compat scalar initializedfromempty initializer listis incompatible withC++98
-Wc++98-compat befriending %1without‘%select{struct|interface|union|class|enum}0‘ keyword is incompatible withC++98
-Wc++98-compat useofnull pointer as non-typetemplate argument is incompatible withC++98
-Wc++98-compat friend declaration naming a memberof the declaring classis incompatible withC++98
-Wc++98-compat non-class friend type %0is incompatible withC++98
-Wc++98-compat befriending enumeration type %0is incompatible withC++98
-Wc++98-compat useof non-staticdatamember %0in an unevaluated contextis incompatible withC++98
-Wc++98-compat friend function %0 would be implicitly redefined inC++98
-Wc++98-compat %select{classtemplate|classtemplatepartial|variabletemplate|variabletemplatepartial|functiontemplate|memberfunction|staticdatamember|memberclass|member enumeration}0 specialization of %1 outside namespace %2is incompatible withC++98
-Wc++98-compat referenceinitializedfrom initializer listis incompatible withC++98
-Wc++98-compat redundant parentheses surrounding address non-typetemplate argument are incompatible withC++98
-Wc++98-compat initialization of initializer_list objectis incompatible withC++98
-Wc++98-compat useof‘template‘ keyword outside of a templateis incompatible withC++98
-Wc++98-compat non-typetemplate argument referring to %select{function|object}0 %1with internal linkage is incompatible withC++98
-Wc++98-compat useof‘typename‘ outside of a templateis incompatible withC++98
-Wc++98-compat passingobjectof trivial but non-POD type %0through variadic %select{function|block|method|constructor}1is incompatible withC++98
-Wc++98-compat goto would jump into protected scopeinC++98
-Wc++98-compat constructorcallfrom initializer listis incompatible withC++98
-Wc++98-compat ‘auto‘type specifier is incompatible withC++98
-Wc++98-compat delegating constructors are incompatible withC++98
-Wc++98-compat ‘constexpr‘ specifier is incompatible withC++98
-Wc++98-compat inheriting constructors are incompatible withC++98
-Wc++98-compat explicit conversion functions are incompatible withC++98
-Wc++98-compat switchcase would be in a protected scopeinC++98
-Wc++98-compat ‘%0‘type specifier is incompatible withC++98
-Wc++98-compat indirect goto might cross protected scopes inC++98
-Wc++98-compat-pedantic castbetween pointer-to-functionand pointer-to-objectis incompatible withC++98
-Wc++98-compat-pedantic implicit conversion fromarraysize expression oftype %0to %select{integral|enumeration}1type %2is incompatible withC++98
-Wcast-align castfrom %0to %1 increases required alignment from %2to %3
-Wcast-of-sel-typecastoftype %0to %1is deprecated use sel_getName instead
-Wchar-subscripts array subscript isoftype‘char‘
-Wconditional-uninitialized variable %0 may be uninitialized when %select{used here|captured byblock}1
-Wconstant-logical-operand useoflogical‘%0‘withconstant operand
-Wconstexpr-not-const ‘constexpr‘ non-staticmemberfunction will not be implicitly ‘const‘inC++1y add‘const‘to avoid a changein behavior
-Wconsumed state ofvariable‘%0‘ must matchat the entry andexitofloop
-Wconsumed parameter ‘%0‘notin expected state when the functionreturns: expected ‘%1‘, observed ‘%2‘
-Wconsumed argument notin expected state expected ‘%0‘, observed ‘%1‘
-Wconsumed invalid invocation of method ‘%0‘on a temporaryobjectwhile it isin the ‘%1‘ state
-Wconsumed return state setfor an unconsumable type‘%0‘
-Wconsumed consumed analysis attributeis attached tomemberofclass‘%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 accessto 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 ibaction attribute can only be applied to Objective-C instance methods
-Wignored-attributes %0 calling convention ignored on variadic function
-Wignored-attributes %0 only applies to variables with static storage duration and functions
-Wignored-attributes %0 attribute argument not supported: %1
-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 unknown visibility %0
-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 %select{function|method}0 %1 could be declared with attribute ‘noreturn‘
-Wmissing-noreturn block 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
-Wno-typedef-redefinition Redefinition of typedef ‘%0‘ is a C11 feature
-Wnon-literal-null-conversion "expression which evaluates to zero treated as a null pointer constant of " "type %0
-Wnon-pod-varargs second argument to ‘va_arg‘ is of ARC ownership-qualified type %0
-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 non-POD 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-virtual-dtor %0 has virtual functions but non-virtual destructor
-Wnonnull null passed to a callee which requires a non-null argument
-Wnull-arithmetic use of NULL in arithmetic operation
-Wnull-arithmetic comparison between NULL and non-pointer %select{(%1 and NULL)|(NULL and %1)}0
-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 instance method %objcinstance0 not found (return type defaults to ‘id‘) did you mean %objcinstance2?
-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 ‘) -Wobjc-method-access instance method %0 is being used on ‘ Class ‘ which is not in the root class -Wobjc-method-access class method %objcclass0 not found (return type defaults to ‘ id ‘) -Wobjc-method-access instance method %0 found instead of class method %1 -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 @dynamic or provide a method implementation in this category -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-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 is ‘readwrite‘ but it will be synthesized ‘readonly‘ via another property -Wobjc-property-synthesis " auto property synthesis will not synthesize property ‘%0‘ because it cannot share an ivar with another synthesized 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 distributed object modifiers on return type in declaration of % 0 -Woverriding-method-mismatch conflicting parameter types in declaration of % 0%diff{: $ vs $|} 1, 2 -Woverriding-method-mismatch conflicting return type in declaration of % 0%diff{: $ vs $|} 1, 2 -Woverriding-method-mismatch conflicting return type in declaration of % 0: % 1 vs % 2 -Wpacked packed attribute is unnecessary for % 0 -Wpadded padding %select{ struct| interface| class} 0 % 1 with % 2 %select{ byte| bit} 3%select{|s} 4 to align anonymous bit- field -Wpadded padding %select{ struct| interface| class} 0 % 1 with % 2 %select{ byte| bit} 3%select{|s} 4 to align % 5 -Wpadded padding size of % 0 with % 1 %select{ byte| bit} 2%select{|s} 3 to alignment boundary -Wparentheses using the result of an assignment as a condition without parentheses -Wparentheses % 0 has lower precedence than % 1 % 1 will be evaluated first -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 local temporary object -Wreturn-stack-address returning address of label, which is local -Wreturn-stack-address address of stack memory associated with local variable %0 returned -Wreturn-stack-address reference to stack memory associated with local variable %0 returned -Wreturn-stack-address returning reference to local temporary object -Wreturn-type control may reach end of non-void function -Wreturn-type non-void %select{function|method}1 %0 should return a value, DefaultError -Wreturn-type control reaches end of non-void function -Wreturn-type-c-linkage %0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C -Wreturn-type-c-linkage %0 has C-linkage specified, but returns user-defined type %1 which is 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 " missing sentinel in %select{ function call|method dispatch| block call} 0 -Wsentinel not enough variable arguments in % 0 declaration to fit a sentinel -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 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 -Wstrncat-size the value of the size argument to ‘strncat ‘ is wrong -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 overflow converting case value to switch condition type (%0 to %1) -Wswitch case value not in enumerated type %0 -Wswitch %0 enumeration values not handled in switch: %1, %2, %3... -Wswitch enumeration values %0 and %1 not handled in switch -Wswitch enumeration value %0 not handled in switch -Wswitch enumeration values %0, %1, and %2 not handled in switch -Wswitch-enum enumeration values %0, %1, and %2 not explicitly handled in switch -Wswitch-enum enumeration values %0 and %1 not explicitly handled in switch -Wswitch-enum %0 enumeration values not explicitly handled in switch: %1, %2, %3... -Wswitch-enum enumeration value %0 not explicitly handled in switch -Wtautological-compare comparison of %0 unsigned%select{| enum}2 expression is always %1 -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-constant-out-of-range-compare comparison of constant %0 with expression of type %1 is always %select{false|true}2 -Wthread-safety-analysis locking ‘% 0 ‘ that is already locked -Wthread-safety-analysis cannot call function ‘% 0 ‘ while mutex ‘% 1 ‘ is locked -Wthread-safety-analysis %select{reading|writing}2 the value pointed to by ‘% 0 ‘ requires locking %select{‘% 1 ‘|‘% 1 ‘ exclusively}2 -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 calling function ‘% 0 ‘ requires %select{shared|exclusive}2 lock on ‘% 1 ‘ -Wthread-safety-analysis %select{reading|writing}2 variable ‘% 0 ‘ requires locking %select{‘% 1 ‘|‘% 1 ‘ exclusively}2 -Wthread-safety-analysis cannot resolve lock expression -Wthread-safety-analysis expecting mutex ‘% 0 ‘ to be 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 the value pointed to by ‘% 0 ‘ requires locking %select{any mutex|any mutex exclusively}1 -Wthread-safety-analysis %select{reading|writing}1 variable ‘% 0 ‘ requires locking %select{any mutex|any mutex exclusively}1 -Wthread-safety-analysis mutex ‘% 0 ‘ is still locked at the end of function -Wthread-safety-analysis expecting mutex ‘% 0 ‘ to be locked at start of each loop -Wthread-safety-attributes ignoring %0 attribute because its argument is invalid -Wthread-safety-attributes %0 attribute only applies to %select{fields and global variables|functions and methods|classes and structs}1 -Wthread-safety-attributes %0 attribute requires arguments that are class type or point to class type type here is ‘% 1 ‘ -Wthread-safety-attributes %0 attribute can only be applied in a context annotated with ‘lockable ‘ attribute -Wthread-safety-attributes %0 attribute requires arguments whose type is annotated with ‘lockable ‘ attribute type here is ‘% 1 ‘ -Wthread-safety-attributes ‘% 0 ‘ only applies to pointer types type here is %1 -Wthread-safety-beta Thread safety beta warning. -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 -Wthread-safety-precise calling function ‘% 0 ‘ requires %select{shared|exclusive}2 lock on ‘% 1 ‘ -Wtype-safety this type tag was not designed to be used with this function -Wtype-safety specified %0 type tag requires a null pointer -Wtype-safety argument type %0 doesn‘ t match specified ‘%1‘ type tag %select{that requires % 3|} 2 -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 dereference of type % 1 that was reinterpret_cast from type % 0 has undefined behavior -Wundefined-reinterpret- cast reinterpret_cast from % 0 to % 1 has undefined behavior -Wuninitialized reference % 0 is not yet bound to a value when used within its own initialization -Wuninitialized field % 0 is uninitialized when used here -Wuninitialized block pointer variable % 0 is uninitialized when captured by block -Wuninitialized variable % 0 is uninitialized when used within its own initialization -Wuninitialized variable % 0 is uninitialized when %select{used here|captured by block} 1 -Wuninitialized reference % 0 is not yet bound to a value when used here -Wunneeded-internal-declaration %select{ function| variable} 0 % 1 is not needed and will not be emitted -Wunneeded-internal-declaration ‘static‘ function % 0 declared in header file should be declared ‘static inline‘ -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 template declaration is not supported ignoring this friend declaration -Wunsupported-friend dependent nested name specifier ‘%0‘ for friend class declaration is not supported turning off access control for % 1 -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 ignoring return value of function declared with %0 attribute -Wunused-value expression result unused should this cast be to ‘ void ‘? -Wunused-value expression result unused -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 parameter of ‘va_start ‘ not last named argument -Wvarargs ‘va_start ‘ has undefined behavior with reference types -Wvarargs second argument to ‘va_arg ‘ is of promotable type %0 this va_arg has undefined behavior because arguments will be promoted to %1 -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 parentheses were disambiguated as a function declaration -Wvexing-parse empty parentheses interpreted 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原文:http://www.cnblogs.com/mthoutai/p/7265009.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!