1

これが私のカスタムクラスです:

ClassA.h

@interface ClassA : NSObject<RKRequestDelegate>{
    NSString *uri;
    NSString *folderUri;
    NSInteger idFolder;
    NSString *kind;
    bool isMine;

    CustomUser *owner;

    NSMutableArray *usersAdministrators;
    NSMutableArray *usersContributors;
    NSMutableArray *usersReaders;

    NSString *visibility;
    NSString *name;
    NSString *description;

    NSMutableArray *comments;
}


@property (nonatomic,copy) NSString *uri;
@property (nonatomic,copy) NSString *folderUri;
@property (nonatomic,assign) NSInteger idFolder;
@property (nonatomic,copy) NSString *kind;
@property (nonatomic,assign) bool isMine;

@property (retain) DMIUser *owner;

@property (nonatomic,copy) NSMutableArray *usersAdministrators;
@property (nonatomic,copy) NSMutableArray *usersContributors;
@property (nonatomic,copy) NSMutableArray *usersReaders;

@property (nonatomic,copy) NSString *visibility;
@property (nonatomic,copy) NSString *name;
@property (nonatomic,copy) NSString *description;

@property (nonatomic,copy) NSMutableArray *comments;


@end

ClassA.m

@implementation ClassA
@synthesize uri,folderUri,idFolder,kind,isMine,owner,usersAdministrators,usersContributors,usersReaders,visibility,name,description,comments;

-(NSString*)description {
    return @"ClassA";
}


@end

非常に簡単です。しかし、私がこれの新しいインスタンスを作成しようとすると、次のようになります:

datas = [NSMutableArray array]; // Tried with [[NSMutableArray alloc] init] => same thing
ClassA *classA = [[ClassA alloc] init];
[datas addObject:classA];
NSLog(@"classA = %@",classA);
NSLog(@"datas = %@",datas);

最初のNSLogは「ClassA」を返します。2番目のNSLogは「datas=()」を返します

ここで何が問題になっていますか?私はいつもこのようなクラスを作成しましたが、このような問題が発生したことはありません。ありがとう!

4

3 に答える 3

1

OKguyzzz私は問題を見つけました。それは私の属性です:

NSString *description;

iOSはそれを愛していないようです。NSObjectの-descriptionメソッドと競合します...その後、ここで同様の質問を見つけました 。コアデータエンティティの属性名として「description」を使用できないのはなぜですか?

乾杯

于 2013-02-26T09:33:34.513 に答える
0

値を返したい場合は、ClassAにメソッドの説明を実装します

- (NSString *)description {

     return @"ClassA";

}
于 2013-02-25T16:57:10.730 に答える
0

必要なものはすべて揃っています。割り当てている変数が弱い変数ではないことを確認しますか?すべてのデリゲートプロパティは弱いため、オブジェクトを保持しません。私の推測では、あなたはこのようなことをしていると思います

someObject.delegate = [[ClassA alloc] init];
NSLog(@"%@", someObject.delegate);

デリゲートプロパティはweak変数を保持しないためです。

編集:この全体の答えは、ARCを使用していることを前提としています。そうでない場合は、無視してください。

于 2013-02-25T17:02:38.973 に答える