1

UITableView に入力する文字列のリストを作成し、各セルが各文字列に収まる適切なサイズであることを確認する方法を見つけようとしています (一部の文字列は非常に長くなる可能性があります)。

私がやろうとしているのは、配列にデータを入力するときにアイテムのリストを保持する tempArray を宣言することです。

私の .h ファイルでは、次のように宣言します。

@interface BusinessTopicController : UIViewController <UITableViewDataSource, UITableViewDelegate>
 ....

@end

NSMutableArray *newArray;

しかし、私がこれをやろうとすると.mファイルに:

@implementation BusinessTopicController
@synthesize newArray;

次の構文エラーが発生します。

プロパティの実装は、@interface で宣言する必要があります

しかし、これを @interface に追加すると

@property (nonatomic, retain) NSMutableArray *newArray;

@synthesize newArray で別のエラーが発生しました。これは次の行です。

Property's synthesized getter follows cocoa naming convention for returning 'owned' objects

私はこの問題をグーグルで検索しましたが、どこかで愚かな間違いを犯しているように見えるので、解決策はやり過ぎのようです。

どんな提案でも大歓迎です!

4

1 に答える 1

3

プロパティの合成されたゲッターはココア命名規則に従います...」コンパイラエラーが生成されるのは、プロパティがで始まるためです。newこれは、合成されたゲッターメソッドがで始まることを意味しnew、+1 保持オブジェクトを返すメソッド用に予約されていることを意味します。そのため、プロパティの別の名前を見つけてみてください。

最新バージョンの Xcode と clang コンパイラで@propertyは、インターフェイスで宣言するだけで済みます。をスキップすることもでき@synthesize、アンダースコアで始まる ivar が合成されます。NSMutableArray *newArray;インターフェイスの外側にあり、本質的にグローバル変数であるため、行を完全に削除します。

プロパティを非公開にしたい場合は、次のように .m ファイルの匿名のカテゴリ/クラス拡張子で宣言することもできます。

// At the top of BusinessTopicController.m
@interface BusinessTopicController ()

@property (nonatomic, retain) NSMutableArray *theArray;

@end
于 2012-11-27T19:47:32.620 に答える