Xcode 5 - Show edited files? - xcode

Is anyone else noticing this? When I edit a file in Xcode 5, it does not (like in Xcode 4) darken the icon for the file. This would be visible at the title bar and also in the file navigator.
Looked around in Preferences but didn't find anything.
Also, I thought maybe it meant that any time you edited a file it would auto-write the file, but it does not appear to do this either.

My experience with Xcode 5 is that it automatically saves all your files for you. I can't comment on how often the files are actually written to disk but using the Mavericks Beta since day 1 and having had some crashes I never lost a line of code (not even a letter).
So there doesn't need to be darkened file icon anymore since no file will ever have pending changes that need to be written to to disk.

If your project is set up to use version control, the Project Navigator will display an 'M' to the right of modified files and an 'A' for new files. Is that what you're looking for?

Related

XCode 4 osx 10.9 - folding methods crashes

After updating to osx 10.9, in any of my projects doing the following crashes Xcode 4.6.3:
fold a method, if statement, for loop, etc
click on a different file
click back on the file with the folded code
When clicking back on the file I notice that all the line numbers are gone but the one at the very top (which is usually some random number and it sort of flashes a bit). Less than 5 seconds after clicking on this file XCode crashes.
This is repeatable. When I reopen Xcode and open the project, the problem persists. Now I am unable to access that file. I've tried closing Xcode and releasing the memory in RAM. I've tried removing the reference in the project and adding it back. Yes the problem persists.
This is massively frustrating and has completely derailed my development. Has anyone else had this issue? Anyone know how to solve it?
Here's the crash report if it's helpful.
-GW
Ok I figured it out, but am still curious as to why this is happening and how I can still fold my code without this problem.
click on the problem file.
click anywhere where the code should be (sometimes all the code appears to be gone)
goto Editor > Code Folding > Unfold All
That cleared it up.
It happened to me too. I fully share frustration and reasons why not going to rev 5.
Here's my solution :
exit xcode
go to your myProject.xcodeproj file
look inside the package for myProject.xcworkspace file (right click / Show Content)
back up myProject.xcworkspace outside your xcode hierarchy
delete myProject.xcworkspace file
restart xcode (a clean myProject.xcworkspace will be created).
NOTE: Works for me, but I'm not using workspaces. I have not tried, but I suppose that if you want to preserve your workspace settings you'd have to selectively delete the UserInterfaceState.xcuserstate files further down in the package hierarchy?
I had to delete UserInterfaceState.xcuserstate file to solve these reoccurring code/comments folding crashes in Xcode 4.6.3 running on OSX 10.9.
This file can be found at projName.xcodeproj(Show Package Contents)->project.xcworkspace(Show Package Contents)->xcuserdata->username.xcuserdatad->UserInterfaceState.xcuserstate
Note that you will loose all the saved user state info of your project, which means all your open tabs will disappear, folded code will be unfolded etc. And the crashes may start reoccuring if you fold any code or comment again.

Xcode commit window -- show unix-diff-like diff (don't show the whole file)

Talking about latest Xcode (4.2.1) on latest Mac OS X Lion (10.7.3).
When you press option-command-C, Xcode pulls up a window showing the new file and the old revision of the file side-by-side.
I like the elegance of the interface; however, sometimes it's not ideal for longer files.
The problem is, Xcode shows you the ENTIRE file, so in order to see all the changes, you basically have to scroll through the whole file. This is especially annoying if you just made a change consisting of a few lines -- you still have to scroll through the whole file to check you accidentally aren't commiting something else.
Is there a way to make Xcode behave like the UNIX diff, which shows you ONLY the changed portions of the files (plus a few lines of context)?
This is not exactly what I was looking for, but it helps nevertheless:
I found out you can click on the region between the two files, and then use up/down arrow keys to directly move between regions which have changed.
This simplifies viewing the diffs greatly.

Xcode 4 adding images to a project

Coming from a background of Visual Studio I had no idea how good that IDE truly was until I had to work with Xcode. One of the more pressing oddities that it has just thrown up is the following.
I'm upgrading a project to a retina display and so have to add a bunch of new #X2 files. This is fine, I have the files and I go into Xcode, choose the project group where I want to add them, select them all and click 'Add'.
"Multiple errors occured" Xcode helpfully blurts and then returns to whatever it was doing before. No break down of what those errors might be, or what actually happened or why.
So I do some looking and some of the files are actually in the directory but Xcode ignores them, I can't figure out a way of adding them (it says they're already there!) but they won't appear in the xcode project.
Can I 'refresh' xcode so it looks in the directory and shows them?
==============================
PS. While I'm here and can rant a little, anyone with a VS background now using Xcode, am I wrong in thinking the following points are hugely annoying:
1) The debugger - frustratingly slow.
2) The file explorer - can't easily sort by name
3) The file explorer - column on the right listing the file names doesn't change the file highlight when you move from file to file within the editor window.
4) Adding files to a project - see above!
Some of these probably stem from lack of experience with the IDE but still, they irk.
Files in the XCode directories don't necessarily have to be in the project.
For some reason, XCode doesn't like overwriting files, and that's the warning message that I usually get when this happens too - "Multiple errors occured."
What I suggest you do is remove all of the #2x files from your project directory, and add them back into XCode using "Add Files..." Make sure you select "Copy files into project directory if necessary" though, otherwise they will just be referenced to their current location on disk.

xcode little icon - what does it mean? and why are they not copied into app

I have no idea what these little A and ? mark mean, I do know that the ones with the ? are not in the budle, however they are in the xcode list, they are editable, they are not read only, i see them as marked to be copied into the bundle (as it is phonegap and the whole www dir should be copied)... but somehow it's not going.... what do these little icons mean? A (archive??!?!) ? = (no reference or something...?)
Those are for source control. If you've created a new project in Xcode 4 and not unticked the relevant box, you have a GIT repository automatically.
'A' means that the file is to be added to the repository when next you commit. '?' means that you've added the file to your project but you haven't yet told Xcode what you want to do with respect to source control. You can set what you want to do by right clicking the files or by selecting them and going to File -> Source Control.
In any case, they're completely unrelated to how the project is built.

Xcode 4 code sense is not working

I am running a "old" Xcode 3 project in Xcode 4 and code sense is not working for my own classes. I have tried following:
Clean/rebuild
Remove Derived Data
Installing 4.3 documentation
Restart
Without any luck.
Sometimes the code sense works but mostly I just get "No Completions".
Try this:
Open Organizer then Project Tab.
Clear the "Derived Data". Xcode should re-index your project then and code sense should work. At least worked for me.
I know this is late, but for reference: http://sealedabstract.com/code/when-xcode-4s-code-completion-autocomplete-breaks/
Close the project, leaving XCode still running.
Open XCode’s Organizer window, go to the Projects Tab, select the correct project, and hit the Delete button next to “Derived Data”.
Quit XCode.
Navigate to your project’s .xcodeproject file in Finder. Right-click, choose “Show Package Contents.”
Leave the project.pbxproj file, but delete the project.xcworkspace file, any .pbxuser files, and the entire userdata folder.
Open the project in XCode. You will see XCode riding high on the CPU usage for around 10-60 seconds, depending on the size of your project. The activity window will say “Indexing”
When your CPU spike returns to earth, code completion will be working again.
There's a lot of deleting going on there so please be careful, but this definitely worked for me.
I've been doing this, and it's worked multiple times for me (after trying all of the above previously).
Edit: Now I just hit space, backspace (the mac version) and rebuild... works nice. Then, remember to scroll (sometimes the colors don't show up until you scroll somewhere)
Find your prefix file: "ProjectName_prefix.pch".
Comment out some line. (basically change it)
Build your project, doesn't matter if it fails or not.
Uncomment it.
Build again.
I'm betting only step 2 (modify the prefix) is what does it, but these essentially get you back to running. Suddenly everything magically recolors itself and completes functions.
Good luck if that doesn't fix it, perhaps try doing this to your dependency pch files (three20 or FB api's)
Clearing the "Derived Data" only works temporarily for me. I have to do it and then restart Xcode like 3-4 times each day to get code sense working again.
I found out the real cause is in the Target's Build Settings. I moved everything from Header Search Paths to User Header Search Paths and it is fixed. In my case, the framework I'm working with is RestKit.
BTW, I came up with this because I was adding another project (QuickDialog) into my project and I was curious that it is using User Header Search Paths, but not Header Search Paths. Here is the difference between them.
You can able to fix that issue by change build settings like this, PreCompile Prefix Headers :NO
FYI, if one file doesn't have code sense but the rest of your project does, check that its added to a target. Once I did that I got code sense back in that file.
It's been ages but the answer is just to move the code into a new folder and the code sense should be working now.
This happened when I added a new Objective-C Class and the code sense doesn't work only on the newly added .m and .h files (on XCode 4 latest update during this post).
Close all xcode windows
Delete all your projects from xcode>window>organizer and restart your project. It will now sense and index your project properly.
I wrote about it in detail here.
Basically my fix was that with localization. I upgraded from xcode 3.2.5 to xcode 4 and then screwed around with built in interface builder and turned on localization for a XIB file accidently which placed my source files in en.lproj directory. After moving them back to Classes folder it worked perfectly.
Again, for the sake of helping others with this issue which, in my case, happened upon upgrading to Xcode 4.3.
Of course I tried the solutions offered in this post, and none of them worked. But the suggestion to move the location of the project in Finder brought back some Code Sense, but the suggestions didn't make any sense.
I ended up deleting my project and re-cloned it from the git repository.That brougt back Code Sense for me...
I open a second project in the background whenever my Xcode's code sensing stops working (it usually works the first time i open the project but after a while code sense no longer works). So what i do is to open a second project in Xcode. Xcode will start indexing the second project and magically the code sense for my main project is back.
Running Xcode 4.3.1 on Lion
Hope this helps someone.
From this comment here I was able to debug the problem on my end, it seemed to be a bad -w flag that the clang preprocessor wasn't recognizing properly. Basically, running
defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3
in Terminal increases the verbosity of the indexer, and should help you track down issues. Open Console.app and look for messages from Xcode, the search string IDEIndexingClangInvocation helped me find them.
For me it happened simply because the file had no target membership. If the first few answers did not work for you, go to your .m file (presumably it's this file that you're having trouble with), open the Utilities view (Edit -> Utilities -> Show File Inspector) and under "Target Membership" check the target to which you want this file to belong.

Resources