创建类时奇怪的Xcode行为

时间:2011-11-20 22:45:28

标签: objective-c xcode templates interface xcode4.2

当我进入xcode尝试使用File> New> New File添加一个新类,然后添加一个Objective C类时,我的头文件看起来像这样:

@interface Course : NSObject 

@end

而不是它需要的样子

@interface Course : NSObject {
@private

}
@end

是否有任何理由,我真的希望它能够设置代码片段的默认方式(第二个)。

2 个答案:

答案 0 :(得分:3)

看起来这是Xcode 4.2的正常行为。使用属性时,新运行时不需要创建实例变量。

旧运行时:

@interface Foo : NSObject
{
  NSNumber *myNumber;
}
@property (nonatomic, retain) NSNumber *myNumber;
@end;

新运行时:

@interface Foo: NSObject
@property (nonatomic, retain) NSNumber *myNumber;
@end;

答案 1 :(得分:3)

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Cocoa Touch/Objective-C class.xctemplate/NSObject

目录中有名为___FILEBASENAME___.m___FILEBASENAME___.h的模板文件。你需要做的是从这里更改___FILEBASENAME___.h文件(使用类似vim,TextWrangler等的东西):

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//  Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
//

___IMPORTHEADER_cocoaTouchSubclass___

@interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___

@end

对此:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//  Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
//

___IMPORTHEADER_cocoaTouchSubclass___

@interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___ {
@private

}
@end

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates//Developer/Library/Xcode/Templates/File Templates中查看,以查看您可以自定义的更多模板。

或者使用我编写的这个python脚本自动定制它们(在调整python脚本以满足您的自定义需求之后):
http://blog.hozbox.com/2011/11/20/easy-xcode-template-customization/