Jon Friskics suggets Swift is great, but you should still know Objective-C first. Dave Mark agrees. Let me give you a different opinion: No, newbie, you don’t need to learn Objective-C first. You’ll miss it from time to time and you might want to pick it up later, but it won’t help you much now. […]
Author archives: Steve
Debugging app upload
I’ve had some recent troubles trying to upload a build in Xcode. These involved getting a really unhelpful error from Xcode: “No identities were available.” Unfortunately, I was stuck there for two days. It turns out that you can get Xcode to log more information on the handshake with the portal. Quit Xcode, then run […]
Built-in categories
NSIndexPath is easier to use than you might think. If you read the documentation for the class, you’ll see this:
On Frameworks
A coworker sent me a link to this posting on the state of libraries on iOS. I sent back a quick reply, with the intent to write a blog post on the subject later. I’ve since decided that this replay says almost everything I wanted to say, so I decided to just edit it a […]
Change back button title
When you’re using a navigation controller, the title of the back button on a particular view controller is pulled from the view it leads to. Although this can be initially confusing, this actually makes a lot of sense. If two different view controllers (say, Circles and Squares) might push the same view controller (Details), shouldn’t […]
Empathy in pricing
I don’t know much about pricing products as a developer. While I’m a programmer, I don’t have apps of my own yet. So take this with a grain of salt, go ahead and flame me, etc. These are just my feelings. But nevertheless, I wanted to share how I feel about pricing as a user […]
Check your thread
When you start using Grand Central Dispatch or NSOperation, you’ll want to perform some actions on the main thread and some intentionally off the main thread. This is a simple and obvious technique, but it took me a while to adopt it: You can do by asserting with NSAssert or NSCAssert for [NSThread isMainThread], just […]
Presenting BlockAssert
Assertions are a great tool. As an Objective-C programmer, I use NSAssert and NSCAssert liberally. For various reasons, you sometimes can’t use NSAssert in a block easily. I’m going to explain why and describe a new macro, BlockAssert, which solves this.
Against GCC_WARN_SHADOW
Over the years I have tweaked which compiler warnings I use. There’s one in particular that I used to turn on but will turn off from now on: GCC_WARN_SHADOW. GCC_WARN_SHADOW is essentially drawing your attention to you possibly doing something other than you intended. This is like most warnings, but the difference is that the […]
C99 initializers
You probably know CGRectMake, but did you know it’s not the only way to make rectangles? It’s not even the best way, really. There’s also C99 initializer syntax. The main advantage to the C99 syntax is that it gives you some very Objective-C like syntax, where the fields are close to the values rather than […]