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
  • 相关阅读:
    Annotation
    GIT的作用以及Versioncontrol为什么要用GIT
    Http协议
    人工智能的可怕与不可怕
    Makefile简易教程
    Node.js 学习笔记之一:学习规划 & 认知 Node.js
    《大教堂与集市》的启示 — 软件工程的另一种选择
    Git简易教程
    谈谈买书与读书
    clang编译器简介
  • 原文地址:https://www.cnblogs.com/davidgu/p/3912842.html
Copyright © 2011-2022 走看看