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
  • 相关阅读:
    当你发现前端传过来的空格是 xa0
    反转义——使从文件读取的失效的转义字符串生效
    openpyxl 读取前端传输的文件,并处理
    django实现下载excel
    IO模块的使用
    pandas 执行sql语句
    近期工作生活小总结
    入职一个月++近期学习++生活总结
    github访问不了
    实现Spring框架(二) SpringMVC框架
  • 原文地址:https://www.cnblogs.com/davidgu/p/3912842.html
Copyright © 2011-2022 走看看