What is the best way to unit test Objective-C code?

Xcode includes XCTest, which is similar to OCUnit, an Objective-C unit testing framework, and has full support for running XCTest-based unit tests as part of your project’s build process. Xcode’s unit testing support is described in the Xcode Overview: Using Unit Tests. Back in the Xcode 2 days, I wrote a series of weblog posts … Read more

What should my Objective-C singleton look like? [closed]

Another option is to use the +(void)initialize method. From the documentation: The runtime sends initialize to each class in a program exactly one time just before the class, or any class that inherits from it, is sent its first message from within the program. (Thus the method may never be invoked if the class is … Read more

NSString property: copy or retain?

For attributes whose type is an immutable value class that conforms to the NSCopying protocol, you almost always should specify copy in your @property declaration. Specifying retain is something you almost never want in such a situation. Here’s why you want to do that: NSMutableString *someName = [NSMutableString stringWithString:@”Chris”]; Person *p = [[[Person alloc] init] … Read more

How do I use NSTimer?

Firstly I’d like to draw your attention to the Cocoa/CF documentation (which is always a great first port of call). The Apple docs have a section at the top of each reference article called “Companion Guides”, which lists guides for the topic being documented (if any exist). For example, with NSTimer, the documentation lists two … Read more

Use of alloc init instead of new

There are a bunch of reasons here: http://macresearch.org/difference-between-alloc-init-and-new Some selected ones are: new doesn’t support custom initializers (like initWithString) alloc-init is more explicit than new General opinion seems to be that you should use whatever you’re comfortable with.

Best way to define private methods for a class in Objective-C

There isn’t, as others have already said, such a thing as a private method in Objective-C. However, starting in Objective-C 2.0 (meaning Mac OS X Leopard, iPhone OS 2.0, and later) you can create a category with an empty name (i.e. @interface MyClass ()) called Class Extension. What’s unique about a class extension is that … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)