What are some good Xcode scripts to speed up development?

前端 未结 6 506
情深已故
情深已故 2021-01-31 12:54

Xcode allows you to create automated scripts for performing repetitive tasks. What scripts have you written to speed up development?

6条回答
  •  离开以前
    2021-01-31 13:15

    Here's one to create a -description method for a class. Highlight the instance variables declaration section (@interface ... { ... }) and execute the script. Then paste the result into your implementation. I use this one along with po objectName in GDB. If FIXME shows up in the output it means it's an unrecognized type. You can either add it to the script or choose the proper format specifier manually.

    #!/usr/bin/python
    
    # Create description method for class
    # Selection
    # Selection
    # Insert after Selection
    # Display in Alert
    
    import sys
    import re
    
    input = sys.stdin.read()
    
    className = re.findall("""(?:@interface )(\w*)""", input)[0]
    vars = re.findall("""(\w*[ ][*]?)(\w*?)_?;""", input)
    
    outputStrings = ["- (NSString *)description {\n"]
    outputStrings.append("""return [NSString stringWithFormat:@"%s :\\n"\n@"  -""" % className)
    
    for type, var in vars:
        outputStrings.append("%s:" % var)
        if "**" in type:
            outputStrings.append("%p")
        elif "*" in type:
            if "char" in type:
                outputStrings.append("%c")
            else:
                outputStrings.append("%@")
        else:
            if "int" in type or "NSInteger" in type or "BOOL" in type:
                outputStrings.append("%i")
            elif "NSUInteger" in type:
                outputStrings.append("%u")
            elif "id" in type:
                outputStrings.append("%@")
            elif "NSTimeInterval" in type:
                outputStrings.append("%f")
            elif "SEL" in type:
                outputString.append("%s")
            else:
                outputStrings.append('"FIXME"')
    
        if not var == vars[-1][1]:
            outputStrings.append(',\\n"\n@"  -')
    
    outputStrings.append("\"")
    
    for type, var in vars:
        outputStrings.append(",\n")
        outputStrings.append("[self %s]" % var)
    
    outputStrings.append("];\n}")
    
    print "".join(outputStrings),
    

提交回复
热议问题