Same reason there different shapes and sizes of screws. It's because there is no single design of screw or screw head which satisfies all requirements. Even when the Phillips design came out there was almost immediate competition from posi-drive and others (most of which have since disappeared) because the Phillips design leaves a lot to be desired, such as the bit rising in the slots when the screw gets tight. Some designs, such as allen heads, have been around a lot longer and for most purposes are very superior but even then, a countersunk allen head of necessity has a rather small socket which creates other problems, such as a tendency to break the keys. Also, allen heads and other socket designs are mostly only used in hardened materials, which resist the tendency of the socket to deform under pressure.

The reason we currently have so (relatively) few mainstream designs of screws is simple practicality. Nobody, merchant or user, wants to stock the massive number of screws we would need to have to use the best possible design for every possible application, so we compromise and use ones that are adequate in the majority of cases.

Why are there so many different types of screws (phillps/flat/hex/star/etc)?

I am having number of images with in my application. ( images more than 50 - approximately &amp; it can extend according to client's need )
Each image are very large round about - 1024 x 768 &amp; 150 dpi
Now, I have to add all this images in a scroll view &amp; display it.


Ok, My question is as follows.

According to me there are two options of loading large images


imageNamed:@"" 
load asynchronously when viewDidLoad Called.


Which is more preferable ? 



imgModel.image=[UIImage imageNamed:[dMain valueForKey:@"imgVal"]];


or like this.

    NSURL *ur=[[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:lblModelName.text ofType:@"png"] isDirectory:NO];

    NSURLRequest *req=[NSURLRequest requestWithURL:ur cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:40];
    [ur release];
    NSURLConnection *con=[[NSURLConnection alloc] initWithRequest:req delegate:self];
    if(con){
        myWebData=[[NSMutableData data] retain];
    } else {
    }

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    [myWebData setLength: 0];
}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [myWebData appendData:data];
}

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    [connection release];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
    NSLog(@"ImageView Ref From - %@",imgV);
    // my image view &amp; set image  
    imgV.image=[UIImage imageWithData:myWebData];
    [connection release]; connection=nil;
}

