zoukankan      html  css  js  c++  java
  • iOS 7 Pushing the Limits

    Cocoa is a dynamically typed language, and you can easily get confused about what type you are working with.
    Collections (arrays, dictionaries, and so on) don’t have types associated with them, so it’s very easy to code
    something accidentally like this:


    NSArray *dates = @[@”1/1/2000”];
    NSDate *firstDate = [dates firstObject];

    This code compiles without a warning, but will crash with an unknown
    selector exception.

    Let's look at following code lines:

    - (void)setURL:(NSString *)URL;              // Bad

    - (void)setURLString:(NSString *)string;  // Good
    - (void)setURL:(NSURL *)URL;                // Good

    category methods

    Because of the possibility of collisions, you should add a prefix to your category methods

    Cocoa generally doesn’t use embedded underscores

    A good use of categories is to provide utility methods to existing classes. When you do this, I recommend
    naming the header and implementation files using the name of the original class plus the name of the
    extension.

    For example, you might create a simple PTLExtensions category on NSDate:

    NSDate+PTLExtensions.h

    @interface NSDate (PTLExtensions)
    - (NSTimeInterval)ptl_timeIntervalUntilNow;
    @end

    NSDate+PTLExtensions.m

    @implementation NSDate (PTLExtensions)
    - (NSTimeInterval)ptl_timeIntervalUntilNow {
      return -[self timeIntervalSinceNow];
    }
    @end
  • 相关阅读:
    每天一道Java题[4]
    每天一道Java题[3]
    每天一道Java题[2]
    关于OOCSS架构
    新blog开张!
    [原]C++拾遗
    mark
    今天的情况(也是10月份的总结)
    11月份的总结
    Linux管道编程实例
  • 原文地址:https://www.cnblogs.com/davidgu/p/3912842.html
Copyright © 2011-2022 走看看