La compilare imi da un warning “Passing argument 1 of ‘initWithDictionary:’ from incompatible pointer type” la linia marcata cu //warning.
De doua zile ma uit la cod si nu imi dau seama de unde vine problema. Codul functioneaza fara probleme, dar as vrea sa scap de warning.
Poate observa cineva ce imi scapa mie.
Multumesc,
Sorin
Vezi ca -> folosesti doar daca variabilele sunt declarate @public,ca default ele sunt @protected si pot fi accesate ori direct ori self.numeVariabila daca ai metode de setter si getter sau proprietati.
Incearca sa folosesti fara self->
Salut
Objective-C nu stie method overloading si ca atare initWithDictionary este deja luat de NSDictionary care se incarca din Foundation inaintea definitiilor asociate tale.
Daca compilezi cu clang e mai clar ce se intampla:
cristi:tmp diciu$ /Users/diciu/Programming/external/llvm//Debug/bin/clang -Wall test.m -framework Cocoa -framework ApplicationServices test.m:35:87: warning: incompatible pointer types sending 'CGPDFDictionaryRef' (aka 'struct CGPDFDictionary *') to parameter of type 'NSDictionary *' PDFLinkAnnotation *linkAnnotation = [[PDFLinkAnnotation alloc] initWithDictionary:annotationDictionary]; // warning ^~~~~~~~~~~~~~~~~~~~ In file included from test.m:1: In file included from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12: In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:21: In file included from /System/Library/Frameworks/Foundation.framework/Headers/NSDecimalNumber.h:8: /System/Library/Frameworks/Foundation.framework/Headers/NSDictionary.h:62:42: note: passing argument to parameter 'otherDictionary' here - (id)initWithDictionary:(NSDictionary *)otherDictionary; ^ test.m:35:24: warning: unused variable 'linkAnnotation' [-Wunused-variable] PDFLinkAnnotation *linkAnnotation = [[PDFLinkAnnotation alloc] initWithDictionary:annotationDictionary]; // warning ^ 2 warnings generated.
Dupa cum vezi, initWithDictionary nu e un nume arbitrar si desi tu l-ai definit cu argument care nu este NSDictionary * compilatorul gaseste definitia in headerele de sistem si o foloseste.
Pentru a rezolva, poti folosi initWithPDFDictionary sau alt nume de metoda care nu este deja folosit.
Era de la numele metodei. CGPDFDictionaryRef este un pointer C la o structura de tip CGPDFDictionary si se poate initializa cu NULL. Operatorul -> nu era implicat in problema, era mai mult pt mine, pt claritatea codului, sa stiu ca annotationDictionary este o variabila membru a clasei.
Sunt 99% convins ca nu e posibil in C ca inversarea NIL si null sa aiba ca efecte warning-uri la compilare.
Asta pentru ca dupa preprocesare devin acelasi lucru (void *)0 (vezi mai jos) si din ce stiu eu tot ce tine de compilare (inclusiv warning-urile) se intampla dupa pasul de preprocesare.
Sunt legate de noile feature-uri din Objective-C (automatic reference counting).
Automatic reference counting ar fi alternativa la retain/release-ul manual.
Stiu ca au introdus ARC automatic reference counting,au disparut metodele dealloc iar daca apelezi release iti spune ca nu e disponibil in modul ARC.
Eu intrebam despre main nib si despre @property strong.
A lucrat cineva cu in-app purchase?
Observerul meu primeste mereu transactionState = SKPaymentTransactionStateFailed si eroarea “cannot connect to itunes store”.
Aveti idee de ce?
Am creat un product ID nou,un user de test nou si a mers in final,oricum user-ul de test si testarea in sandbox merge doar daca user-ul e inregistrat pe US ...