1

私はXcode4.3.2(IOS5.1)を使って、楽しくコンパイルして順調に進んでいます。思い切ってXcode4.5に移行することにしたので、私のアプリは最も悲惨な方法でコンパイルに失敗します。今、私はまだARMV7またはそのようなものの問題を乗り越えていません。いいえ。私の問題はおそらく多くの人をうめき声にさせるでしょう。

しかし、あなたは私の基本的なANSIC日をそのせいにすることができます。誰もが再利用可能なコードが好きで、私はそれをたくさん作成しました。しかし!!!この特定のコード自体をオブジェクトにしたことはありません。つまり、私はインターフェイスと実装の手順を真剣に受け止めていません。

確かに、ビューコントローラなどのクラスがあります。ただし、* 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 code into a class .m fillの方法はありますか?

ヘルプ ?

4

2 に答える 2

1

私は問題が何であるかを知っていると思います。インポートしているメソッドは完全に実装されています。つまり、ヘッダーではありません。これらの完全なメソッドは、@implementation 行の後に #import されます。

@implementation 内のプライベート メソッド宣言の一部として、@interface と @end の間にプライベート クラスとして .h ファイルの形式でメソッド仕様を追加しました。

意味が分からないかもしれませんが、基本的に、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 に答える