Нечетное поведение XCode при создании классов - PullRequest
0 голосов
/ 21 ноября 2011

Когда я вхожу в xcode, попробуйте добавить новый класс с помощью File> New> New File и затем добавьте класс Objective C, мой заголовочный файл будет выглядеть так:

@interface Course : NSObject 

@end

вместо того, чтоон должен выглядеть так:

@interface Course : NSObject {
@private

}
@end

есть ли для этого какая-либо причина, я бы очень хотел, чтобы он настроил способ, которым фрагмент кода выполняет (второй) по умолчанию.

Ответы [ 2 ]

3 голосов
/ 21 ноября 2011

В

/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/

3 голосов
/ 21 ноября 2011

Похоже, это нормальное поведение для Xcode 4.2.Новая среда выполнения не требует создания переменных экземпляра при использовании свойств.

Старая среда выполнения:

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

Новая среда выполнения:

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