Question: My app must run on iOS 3.2 and the methods such as -addOperationWithBlock: only work in > 4.0.

But NSOperationQueue was available since iOS 2.0 so I'd like to give it a try the "old way". Does anyone know of a handy tutorial that shows the basics of how to use NSOperationQueue without blocks?

Answer: 
it's pretty straightforward with Invocation operations. These are operations that allow you to send a message to a particular object with some object parameter (optional).

So given this method that you want to invoke:

```
- (void)doSomething {

        NSLog (@"Did it!");
}

```

You can do something like this to make it happen:

```
// Get or create some queue
NSOperationQueue *someQueue = [NSOperationQueue mainQueue];

// create an invocation operation
NSInvocationOperation *invocationOp = [[NSInvocationOperation alloc]  initWithTarget:self
                                                                                selector:@selector(doSomething)
                                                                                 object:nil];

[someQueue addOperation:invocationOp]; // Add the operation to the queue

[invocationOp release];

```

Hope that helps.
Found a pretty good tutorial [here](http://www.icodeblog.com/2010/03/04/iphone-coding-turbo-charging-your-apps-with-nsoperation/). It also goes beyond the topic and gives info on why it's not always a good idea to fetch data on the main thread.