如何访问对象值(它总是打印内存地址)

时间:2011-05-04 18:19:36

标签: iphone ios4 nsobject

我有以下课程:

@interface TTFacebookPost : NSObject {
  NSDate*   _created;
  NSNumber* _postId;



}

@property (nonatomic, retain)   NSDate*   created;
@property (nonatomic, retain)   NSNumber* postId;


@end

当我尝试在另一个类中访问postId时,它总是检索一个内存地址或一个我不知道它来自哪里的数字:

TTFacebookPost *post = cell.userInfo;
NSLog(@"Post url is: %i", post.postId);

结果是:

 Post url is: 118538496

这个数字不会保存在对象的任何地方,所以我不知道将要发生的地方。

这是查看内存中对象的方式:

enter image description here

谢谢!

3 个答案:

答案 0 :(得分:2)

如果它是一个对象,则使用%@来获取-(NSString *)description方法的结果。

这通常是你想调试的。但它通常不是你想要呈现给用户的东西。您可以使用NSNumberFormatter进行此操作。

答案 1 :(得分:1)

您可能想要类似NSLog(@“Post url is:%@”,post.postId);

答案 2 :(得分:0)

NSLog(@"Post url is: %f",[post.postId floatValue]);

OR

NSLog(@"Post url is: %d",[post.postId intValue]);

OR

NSLog(@"Post url is: %d",[post.postId boolValue]);

取决于您是否使用NSNumber存储float,int或boolean。