Short and useful Objective-C snippets?

2020-05-12 01:06发布

问题:

Since XCode 4, there is now a Code Snippets section which offers the snippets via auto-complete when typing. I'd be very interested in snippets you all have stored in there. What snippets save you the most time (and why)?

Please only post actual snippets (meaning no snarky "don't need no stinkin' snippets", and no "i love snippets that do <XYZ>"), and only snippets that are short and sweet (i.e. no more than ~20 lines at the most...). If a snippet is not obviously useful, also explain why you think it is. ;)

回答1:

I don't if this counts but I always use this snippet whenever I add a UITableView in any of my view controllers.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if(cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
                                      reuseIdentifier:cellIdentifier];
            // Do something here......................
    }
    // Do something here too .........................
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return ;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return ;
}

its quite handy if you are not using a UITableViewController to show table contents.



回答2:

Dispatch block on the current queue after given number of seconds:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, <#seconds#>*1e9),
    dispatch_get_current_queue(), <#block#>);


回答3:

Here are my two comment snippets. I use them a lot.

Header comment:

// ----------------------------------------------------------------------------------------------------------------
# pragma mark -
# pragma mark <#comment#>
# pragma mark -
// ----------------------------------------------------------------------------------------------------------------

Sub comment:

// ----------------------------------------------------------------------------------------------------------------
//  <#comment#>
// ----------------------------------------------------------------------------------------------------------------


回答4:

I’m often adding private class interfaces with class extensions:

@interface <#ClassName#> ()
@end

This is to keep the public interface completely free from internal stuff, especially now that we can have purely synthesized properties (example gist).



回答5:

A couple of collections are here:

https://github.com/mneorr/snippie/tree/master/backup

and here:

https://github.com/jad/xcode-code-snippets

which you can stick in this folder:

~/Library/Developer/Xcode/UserData/CodeSnippets


回答6:

While debugging this snippet is really useful. It let you know Class Name, Function Name and you can add your comments also.

NSLog(@"%s [Line %d] %@ ", __PRETTY_FUNCTION__, __LINE__,<#comment#>);


回答7:

There does not seem to be a class category between the factory snippets:

@interface <#ClassName#> (<#CategoryName#>)
@end


回答8:

This is the Blog, that I have created for the same purpose...

http://ios-funda.blogspot.in/



回答9:

I also have the standard view lifecycle methods in my snippets (which get used daily):

I use keyboard shortcut vwa for

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear: animated];


}

vdl for viewDidLoad etc.