1

这是我的自定义类:

类A.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

类A.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”。第二个 NSLog 返回“datas = ()”

这里有什么问题?我总是创建这样的课程,我从来没有遇到过这样的问题。谢谢!

4

3 回答 3

1

好的,伙计,我发现了问题。这是我的属性:

NSString *description;

似乎 iOs 不喜欢那样。它与 NSObject 中的 -description 方法冲突......之后,我在这里发现了一个类似的问题: Why can't I use "description" as an attribute name for a Core Data entity?

干杯

于 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 回答