{
  "for of": {
    "prefix": [
      "forof"
    ],
    "body": [
      "for (${1:<type>} *${2:<var>} in ${3:<from>}) {",
      "\t$0",
      "}"
    ],
    "description": "for of"
  },
  "log": {
    "prefix": "nslog",
    "body": [
      "NSLog(@\"%@$2\", ${1:<var>});"
    ],
    "description": "nslog"
  },
  "class interface": {
    "prefix": [
      "interface",
      "class"
    ],
    "body": [
      "@interface ${1:<class-name>} : ${2:<super-class>}",
      "- (id)init;",
      "- (<return-type>)<instance-method-name>",
      "+ (<return-type>)<class-method-name>",
      "",
      "@property <type> <property-name>",
      "@end"
    ],
    "description": "description"
  },
  "implementation": {
    "prefix": [
      "implementation"
    ],
    "body": [
      "@implementation ${1:<class-name>}",
      "{",
      "\t<type> <instance-variable>;",
      "}",
      "",
      "- (${2:<return-type>})${3:<instance-method-name>} {;}",
      "+ (<return-type>)<class-method-name> {;}",
      "@end"
    ],
    "description": "class implementation"
  },
  "define method": {
    "prefix": "method",
    "body": [
      "- (${1:<return-type>})${2:<method-name>} {",
      "\t$0;",
      "}"
    ],
    "description": "implementation method"
  },
  "define method with args": {
    "prefix": "argMethod",
    "body": [
      "- (${1:<return-type>})${2:<method-name>}:(${3:<arg-type>})${4:<arg-name>} ${5:<key-name>}:(${6:<type>})${7:<arg-name>} {",
      "\t$0;",
      "}"
    ],
    "description": "implementation method with args"
  },
  "category": {
    "prefix": "interface-category",
    "body": [
      "@interface ${1:<class-name>} (${2:<category-name>})",
      "- (id)init;",
      "- (<return-type>)<instance-method-name>",
      "+ (<return-type>)<class-method-name>",
      "",
      "@property <type> <property-name>",
      "@end"
    ],
    "description": "interface with category"
  }
}