我正在尝试设置我的 UILabel 文本属性并获取异常 NSInvalidArgumentException 原因:'-[NSNull length]: unrecognized selector sent to instance 0x2591068
进行一些调试后,我可以看到我要设置的值是 ,但我不明白为什么这是一个问题。这似乎与我的数据库结果与对象中如何返回 NULL 有关。这是背景。
////////
ContactsModel - 这是我的对象,其中填充了来自数据库的 NSArray 的结果。
#import "ContactModel.h"
@implementation ContactModel
@synthesize contactId;
@synthesize status;
@synthesize phone1;
@synthesize thumb_url;
@synthesize fullname;
@synthesize phone2;
- (id)init {
self = [super init];
if (self) {
self.thumb_url = nil;
self.status = nil;
self.fullname = nil;
self.phone1 = nil;
self.phone2 = nil;
}
return self;
}
///////视图控制器
列表视图。- 列表视图通过下面的 segue 将填充的对象传递给详细视图。
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"pushContactDetail"])
{
GlobalVars * sharedGlobalVars = [GlobalVars sharedGlobalVars];
NSArray *indexPaths = [self.imageCollection indexPathsForSelectedItems];
ContactDetail *detailView = (ContactDetail *) segue.destinationViewController;
NSIndexPath *index = [indexPaths objectAtIndex:0];
NSLog(@"%d", index.section * 2 + index.row);
//TODO: Figure out what the hell this means
ContactModel *contact =[sharedGlobalVars.contactsContent objectAtIndex:index.section * 2 + index.row];
detailView.contact = contact;
}
详细视图- 在此方法中将对象分配给 UI
- (void) loadContent
{
ImageCache *imgCache = [ImageCache sharedImageCache];
//publisherPhone1.text = self.contact.phone1;
publisherPhone2.text = self.contact.phone2; //THIS NOT WORKING IF NULL
publisherFullName.text = self.contact.fullname;
UIImage *image = [imgCache getCachedImage:self.contact.thumb_url];
publisherImage.image = image;
}
当我输出对象的值时,这是我得到的一个例子
The value of phone2: <null>
如果我将加载内容方法更改为设置 self.contact.phone2 = nil 以进行测试,一切都很好。这就是导致我认为与 nil 之间存在差异和问题的原因。
感谢您的任何帮助,您可以提供