Mark Struzinski
Thoughts on software development and technology
Quick Xcode 4 Tip: Deleting Derived Data to Rescue Code Completion
Fri Sep 30 2011 | Mark StruzinskiQuick Tip:
I had an issue on a very large project in XCode. Starting 2 days ago, all of my syntax highlighting was completely broken. This is bad, but even worse, my code completion worked only partially. I was getting autocomplete for local variables only. When calling framework methods with a lot of parameters, I rely pretty heavily on code completion. I tried all of the usual fixes.
On Discovering New APIs
Sat Jun 11 2011 | Mark StruzinskiIn working with any programming language, I’ve always found that if you seem to be fighting things to get work done, you’re probably doing it wrong. This is especially true in Cocoa Touch. When I was first learning the frameworks, I read a lot of blogs, books, and any other materials I could get my hands on. Almost everyone said something to the effect of “You don’t get it? Read the docs again.”
It took me a while to realize that Apple has excellent documentation. It’s gotten a lot better in the Microsoft world, but in the C# 2.0 and 3.5 days, you would frequently go in search of a particular framework method or property, and come across a blank page that was obviously generated by some kind of tool. Or, my favorite was when you had a property that was named something like ToolsArray, and the description would contain verbiage like “The array that holds the tools”.
Using NSXMLParser
Mon Jun 7 2010 | Mark StruzinskiThis is my first stab at an iPhone project. I’m writing an app that consumes an RSS feed and parses it to retrieve a few bits of information for display on the screen. This is my first attempt at an implementation. Coming from a .NET background, it is quite a paradigm shift when switching to the heavily convention based world of Cocoa development.
If I was writing this app in .NET, I’d go out looking for the proper class libraries to parse the XML and begin framing out a class to perform all the functions I needed to populate an object to be persisted to the UI.