1

我一直在愉快地编译并使用 Xcode 4.3.2 (IOS5.1)。现在我已经冒险并决定迁移到 Xcode 4.5,我的应用程序以最悲惨的方式编译失败。现在,我还没有解决 ARMV7 或类似问题的问题。不,我的问题可能会让你们中的许多人呻吟。

但是你可以为此责怪我的基本 ANSI C 天。每个人都喜欢可重用的代码,我已经创建了很多。但!!!我没有将这些特定代码中的任何一个变成对象本身。也就是说,我没有把接口和实现的步骤放在心上。

当然,我有我的视图控制器等的类。但是,为了避免必须声明分配* init * 对象以便我可以使用其中的方法,我只是将大量方法转储到 .inc 文件中 - 在其他单词包含文件。例如,我有一种改变表格单元格的背景颜色或背景图像的方法——我会导入具有该方法的文件。

例如

-(void)defaultInactiveBackGroundForCell:(UITableViewCell *)cell {

   cell.backgroundView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:DEFAULT_INACT_CELL_BACKGROUND_IMAGE] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0]];

} // defaultInactiveBackGroundForCell

到目前为止一切都很好。

而且,我会在我的类文件(我的 .m 文件)的顶部 #import 文件(包含上面的代码)。在我的 willDisplayCell 委托方法中,我只需调用以下方法:

[self defaultInactiveBackGroundForCell:cell];

它会起作用的。

但在 Xcode 4.5 下,它开始了大时代:

声明中缺少方法的联系人。

所以,我的问题是:有没有办法像过去使用 ANSI C 那样将#importing 代码放入类 .m 填充?

帮助 ?

4

2 回答 2

1

我想我知道问题可能是什么。我正在导入的方法已完全实现,也就是说,它们不是标头。这些完整的方法是在我的@implementation 行之后#imported 的。

我以 .h 文件的形式添加了方法规范,作为 @interface 和 @end 之间的私有类,作为 @implementation 中私有方法声明的一部分。

我可能没有意义,但本质上,Xcode 4.3.2 似乎很高兴在@implementation 和@end 之间导入所有这些方法。但 Xcode 4.5 完全没有。它也需要定义标题。

于 2012-10-03T21:19:00.863 回答
0

我不确定它是否与您的“面向对象”有关或缺乏。从 Xcode 4.5 开始,最低部署目标是 iOS 4.3。在迁移到我的部署目标为 4.0 的 Xcode 4.5 后,我在最近的一个项目中遇到了头文件导入错误。将其更改为 4.3 修复了它。

于 2012-09-26T20:46:45.493 回答