小编Gar*_*Lyn的帖子

传递nil到archivedDataWithRootObject返回奇怪的NSData

在我的代码中的某个地方

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:someArray];

我希望datanil,如果someArraynil,但它返回一些数据,我不明白.

我把它打印出来如下 <62706c69 73743030 d4010203 0405080a 0b542474 6f705824 6f626a65 63747358 24766572 73696f6e 59246172 63686976 6572d106 0754726f 6f748000 a1095524 6e756c6c 12000186 a05f100f 4e534b65 79656441 72636869 76657208 11161f28 32353a3c 3e444900 00000000 00010100 00000000 00000c00 00000000 00000000 00000000 00005b>

我试图NSData *data = [NSKeyedArchiver archivedDataWithRootObject:nil];确保论证肯定是零.

我阅读了文档,但没有找到任何解释.

那究竟发生了什么?

编辑 我将数据写入文件,结果是这样的plist.它可能是NSKeyedArchiver存储对象的方式.

零plist文件

objective-c plist nskeyedarchiver ios

5
推荐指数
1
解决办法
729
查看次数

非常奇怪的东西与UILabel异常显示

我很难描述这个问题,我将使用截图.它们都来自我的模拟器,当我在我的测试时iPodTouch4,它是相同的.我有几个UILabel,这是图片中的rects.

1.Retina显示,UILabels

请注意,某些rects右侧有黑线,这是意料之外的,因为除了backgoundColor和frame之外,我没有编写任何额外的行为.

当我UILabel改为UIView(没有其他改变),每件事都变得正常! 视网膜显示,UIViews

UILabel在视网膜显示器中使用时,我们可以清楚地看到一些具有不同宽度的镜片,但根据我的代码和日志,它们具有相同的宽度!真的很奇怪! 没有视网膜显示UILabel

我无法弄清楚为什么.它可能是一些特别的东西UILabel,但我在文档中找不到任何地方.

[这是我创建标签的方式]

NSMutableArray *labels = [NSMutableArray array];
for (NSString *day in [self getDaysOfTheWeek]) {
    UILabel *dayOfWeekLabel = [[UILabel alloc] initWithFrame:CGRectZero];
    [labels addObject:dayOfWeekLabel];
} 
self.dayOfWeekLabels = labels;
Run Code Online (Sandbox Code Playgroud)

[这是我设置框架的地方]

int count = 0;
for (UILabel *dayLabel in self.dayOfWeekLabels) {
    dayLabel.frame = CGRectMake(CELL_BORDER_WIDTH + count*(self.cellWidth+CELL_BORDER_WIDTH), CELL_BORDER_WIDTH, self.cellWidth, self.daysHeader.frame.size.height);
    dayLabel.backgroundColor = self.dateBackgroundColor;
    count++;
}
Run Code Online (Sandbox Code Playgroud)

正如我上面提到的,只需在这些代码中将这些UILabel更改为UIView,使它们看起来不同.

iphone ios

2
推荐指数
1
解决办法
641
查看次数

标签 统计

ios ×2

iphone ×1

nskeyedarchiver ×1

objective-c ×1

plist ×1