I have been using Xcode 4 for 2 weeks and I noticed that I don't get code completion macros for if-else and switch statements.
Like this article describes: http://macdevelopertips.com/xcode/xcode-code-completion-macros.html
I had it working in the beginning, but it suddenly stopped.
Have you tried deleting the project's derived data (which contains the project index used by Code Sense)?
To do so, open the organizer (Window -> Organizer), then the Projects tab. Select your project then hit the delete button next to the derived data path (to the right). Confirm and let it re-index your project.
Related
Summary:
I have a large Xcode project 50 + scenes with some files with a large number of lines. I have separated the scenes into 15 different story boards. Currently it takes 5 minutes to switch to see the compiler errors/warnings. There are approximately 100 swift files in the project. When I am trying to edit a swift file , the editor hangs and the spinning "beachball" appears for minutes. I have deadlines to finish and editing is just impossible...I have tried clearing derived data and clearing caches...cleaning and restarting. This worked for a while but now makes no difference. I appreciate your help.
I have read that certain coding can affect the parsing during editing. How do I find which bit of my code is at fault?
it is taking me minutes to make a change to a parameter
Version/Build:
I have installed Xcode 9, although I was having similar problems with Xcode 8
Configuration:
I am using a MacBook pro model a1706. 8 gig of Ram, 2.9ghz processor.
The following resolved most Xcode 9 beachball issues for me, and perhaps it will help someone else...
Quit Xcode.
From the Finder, right-click your project (.xcodeproj) file.
Choose "Show Package Contents".
Right-click the "project.xcworkspace" item.
Choose "Show Package Contents".
Open the "xcuserdata" folder, then the ".xcuserdata" folder.
Drag the "UserInterfaceState.xcuserstate" item to the desktop (just in case).
Delete the "UserInterfaceState.xcuserstate" item.
Launch Xcode and open your project.
This resulted in a dramatic performance increase when opening and navigating my large objective-c project (which has 250 xib files, and over 100 source code files). Of course, YMMV.
For Xcode 13, in a project that uses Pods, open right click in .xcworkspace, and select "Show Package Contents". Open xcuserdata and then open .xcuserdatad. Find the file UserInterfaceState.xcuserstate and delete it.
This issue is not a major issue but has certainly made the process consume more time. When I build my application, indexing fails in one and only one file (.m file if it matters).
There is not intelligence, no color on global variables and most of the code except for important keywords are black in color. Since there is no intelligence, whenever I need to make changes, I have to see other files for doing the changes.
this happend for me when the file was not included in the target.
Method 1:
- Go to your project (the very first item in the project list) (cmd-1)
- select your target
- open tab Build Phases
- add your .m file in Compile Sources
Method 2:
- select your .m file
- show Utilities Pane (the one on the right side)
- first tab: show the file inspector (cmd-option-1)
- check the target in Target Membership
Here are the steps I follow when I face such a situation :
Clean the project, in Xcode menu Product -> Clean
Close the project
Open Organizer and go to Projects tab, select the project
Remove all derived data (the buttons are on the main view : Derived data and Snapshots)
Remove the project from the list on the left (select it and press backspace)
Finally close Xcode, launch it again and reopen the project
These steps will make Xcode rebuild the index for the whole project.
If indexing fails, try cleaning the product (or entire build folder). If that doesn't help, close Xcode, remove the DerivedData folder (you can find the location in the preferences "Locations" tab), and start Xcode again.
The indexing process will then try to re-index your files.
Hmm. Considering the normal Clean or Delete Derived Data solutions haven't worked, my next steps would be:
Copy the contents of the .m to the clipboard.
Delete the .m from your project (including sending the physical file to Trash)
Delete Derived Data
Try to compile the project (I know it will generate errors most likely, but let it do this).
Create a new .m file and paste the code back in.
Compile and run the project.
Delete Derived Data again to force a reindex.
Close XCode, reopen it.
Now hopefully it should be indexed. If this still doesn't work, try renaming that class (the .h and .m), see if it indexes, then rename it back again.
Try Product > Clean (XCode 4).
This can happen sometimes, it's annoying. If you get desperate, try creating a new project in a different location and copying the source files over.
I found solution to my question. Actually a localized file of that file was being created in en.proj folder, where indexing failed. So, I just copied that file into project main folder and deleted it from en.proj folder. It works fine now. I can see everything indexed.
Search for "GCC_INCREASE_PRECOMPILED_HEADER_SHARING" in your project build settings
Change 'increase sharing for precompiled header' from NO to YES
Hope this helps.
Go to Editor -> Syntax coloring, and change it to objective c. It might do the trick.
I'm currently trying to create version 1.1 of a project I created in XCode 4, but after archiving the files do not appear in the Project Navigator. My initial thought was that I had to clone my repository (git) and thus create a new version in which I could see the
files, but the clone is also missing the files.
I can access the files from the top bar, but that's not really a desirable solution when
working with a big project. The case is the same for another project that I have archived
so I suspect it is supposed to be a feature of XCode 4.
What am I missing here?
(I'm just combining your "nevermind, I found it" comments into an answer, to maintain the SO style, so this question doesn't pop up as needing an answer.)
Check that you're not filtering file names (left column, bottom.)
Also make sure you haven't pressed one of the "show only files with..." toggle buttons (same location, near the search entry.)
Note that these buttons are toggles
Yes. I had to hit the X button with the icon that was blue at the bottom. This corrected my issue for XCODE Version 6.1. Thanks.
For some reason Xcode's Refactor is always disabled. I used to be able to activate it via selecting a class name and right clicking in the editor to select it. But now no matter what I do, it remains disabled. Any idea what's going on?
Working with Xcode 5, I kept getting "Can't refactor during indexing" when trying to refactor. Rebuilding the index seemed to hang at "Indexing - Waiting for make" forever.
I then noticed that make was already used by another process on my machine (not by Xcode). Shutting this process down enabled Xcode to finally finish indexing
Your project's index might be out of date/corrupt. In the General tab of the Project Settings window, click Rebuild Code Index and wait until it's done.
You can check the progress of the rebuild in the Activity window (Window > Activity).
I just ran into a similar problem in Xcode. I could not refactor anything in the class's .m (implementation file). The only explanation I could come up with is that it was not indexing the file for some reason, and I could not force it to reindex. The only hack that I found that worked was to copy the file to temporary location, remove it from my Xcode project, copy the file from the temp location back to my project's location, and then re-add the file via Xcode.
None of these suggestions work for Xcode 3.2 - the ONLY way is to select the file you want to rename in the left Groups & Files column. THEN highlight the name of the .m or .h in the right code view, then you can right click and select Refactor!
For instance if you're changing the DetailViewController name, highlight the actual DetailViewController.h word in code.
Note, you should also always make sure you've selected the .h file, not the .m
I faced the same thing in Xcode 11. and this worked for me:
I changed iPhone 8 simulator to generic iOS Device and it worked when it is on Generic
I'm new in iOS development,I have met this similar problem.
Xcode:Version 7.1 (7B91b),it looks like Refactor not working:
But when I put my mouse on the red circle point in the following picture,and then the Refactor working.
I think this is a low level mistake,but may be a reference for someone.
Why is Refactor... grayed out (disabled) in Xcode?
I'd like to rename a class.
Select the class's symbol in its header file - i.e. the bit just after #interface. Then the refactoring stuff should be enabled.
If you are using Objective-C++ (i.e. mix Objective-C with C++ code) then refactoring is disabled in xcode since it does not support refactoring of C++ code.
Refactor might also be disabled if affected files (most likely the file with your class in it) are not saved.
I've been using Xcode for 5 years now, and refactoring has never worked correctly (even xcode 4.6 has major bugs where it WILL corrupt your source code!).
The workaround has always been (still works 100%, even in cases where Apple's code fails)
use shift-command-f to find all uses of the file
select "replace" in the search settings
"replace-all"
do the following for the .h file, and REPEAT IT FOR THE .m FILE (if you have one):
right click the original file, and select "show in finder"
delete the file from xcode (select "delete references only" when asked)
rename the .h (and .m if you have one) in Finder
in Xcode, select "Product -> (hold down Alt) -> Clean Build Folder"
quit xcode (you can usually get away with not doing this - but NOTE: there are some other MAJOR bugs in Xcode where it crashes itself if you don't do this)
re-open xcode
drag/drop the .h and .m back into Xcode
wait a few seconds (some of Xcode's core methods are asynchronous - allowing it to corrupt your project)
finally, when it seems to be doing nothing (and your hard disk isn't making any noise any more): cmd-b to re-build
I have a 100% success rate with this method. I just tried refactoring with Apple's "Refactor -> Rename" in latest xcode and it failed - again!
(this time with the incorrect error: "Unable to determine the language of", one of those error messages where Apple put the wrong text in place)
I'm going to my project at finder, then change files name by get info.
After that, at xcode -> Project Navigator I delete the files.
At end, I click right on the class and Add files to ..., and add these files again.
It worked for me.
For me I realized Refactor was disabled because the Xcode project I had opened was referencing a Base SDK that was missing. Edit Project Settings and in the Build tab set the Base SDK to one that you have (like for me this was iOS 4.2). This enabled Refactor for me.
Also, it could happen that you renamed the filename for the class, either outside xcode or by ctrl-clicking the filename and then renaming it.
xcode refuses to refactor if filename does not match with the class name.
Go to your class' header file and find the line that looks similar to this:
#interface YourClassName
Right click on the class symbol (e.g. YourClassName) and you should be able to select Refactor -> Rename...
I just tried this and it works in Xcode 5.
This may be a bit late, but I stumbled across this post because I was unable to refactor my "ViewController.swift" file to "WhateverViewController.swift". I tried selecting the file in the Project Navigator and then selecting "Editor -> Refactor" from the top menu, but 'rename' is always greyed out.
Instead, what worked was selecting the ViewController name from the editor. So if you have:
class ViewController: UIViewController {
// Code here...
}
Highlight the "ViewController" word and then select Refactor from the menu or right-click and select Refactor -> rename.
Hopefully that helps...
Had this problem as well. I ran through trying to find missing SDKs, saving files, and looking for Objective-C++ code as mentioned above, and all it took to fix my machine was rebooting XCode.
Seems a little buggy still.
BTW, this was for XCode 4.0.1
Refactoring works If you first change the file name in the project navigator.