ARC: Setting compiler flags to -fno-objc-arc and build errors

18,953

Solution 1

Did you use the migration tool to perform your migration? Did you add the compiler flags to all the files that has release/retain?

I wrote about ARC migration on my blog here.

Solution 2

Yes Thats true if you are using the ARC For iphone Application. You can not use manually retain, release, etc. .these messages automatically placed by the complier. You should check your code properly that for which classes you get error. I think so,you are still using retain, release, etc. for ARC enabled Classes. So Firstly check your classes,in which that error Occurred.

Share:
18,953
Lorenzo B
Author by

Lorenzo B

Software Engineer | PhD in Computer Science

Updated on July 20, 2022

Comments

  • Lorenzo B
    Lorenzo B almost 2 years

    Following a stackoverflow topic about disabling ARC compiler mechanism for specific classes, I added the -fno-objc-arc argument to Compiler Flags column under Compile Sources section (Buil Phases tab within TARGETS project). Even if settings have been validated, I'm not able to build my application since the compiler says that retain, release, etc. cannot be used under ARC.

    How can I fix the above problem? Thank you in advance.

  • zaph
    zaph about 12 years
    ARC can be disabled on a file by file basis with the fno-objc-arc flag.
  • Lorenzo B
    Lorenzo B about 12 years
    @MugunthKumar For the first question no. Yes for the second one. +1 for your guide. Thank you.
  • jscs
    jscs about 11 years
    While this may technically answer the question, it would be preferable for you to summarize the linked material here. Otherwise, the answer is at risk of losing its usefulness due to link rot.
  • Clay
    Clay almost 11 years
    I had a similar problem and found that if I moved the #include 'myFile.h' to the header file instead of having at the top of the implementation file (of the class where I was trying to include it), the errors went away. I have no idea why.
  • nickthedude
    nickthedude over 10 years
    hey the flag is actually -fno-objc-arc