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.
@Firoze Lafeer gave an example with NSInvocation operation, but you can also use your own NSOperation subclass.

The [official documentation](http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html#//apple_ref/doc/uid/TP40008091-CH101-SW1) shows with example every type of operation you can use. Even with blocks available, it's sometime preferred to use NSOperation subclass for bigger tasks.