- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从一个著名的教程中提取了这段代码,当我运行该应用程序时,我在 CGFloat 实例 *imageHeight 上遇到了一个 NaN 错误。但是,如果我将类型更改为 NSUInteger,应用程序构建起来就很好。有没有人可以解释发生了什么。我理解 NaN = Not A Number,但 CGFloat 应该可以作为数据类型正常工作。
CGFloat imageHeight = self.mediaItem.image.size.height / self.mediaItem.image.size.width * CGRectGetWidth(self.contentView.bounds);
self.mediaImageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.contentView.bounds), imageHeight);<--NaN ERROR is thrown here
NSUInteger imageHeight = self.mediaItem.image.size.height / self.mediaItem.image.size.width * CGRectGetWidth(self.contentView.bounds);
self.mediaImageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.contentView.bounds), imageHeight);
- (void) layoutSubviews {
[super layoutSubviews];
NSUInteger imageHeight = self.mediaItem.image.size.height / self.mediaItem.image.size.width * CGRectGetWidth(self.contentView.bounds);
self.mediaImageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.contentView.bounds), imageHeight);
CGSize sizeOfUsernameAndCaptionLabel = [self sizeOfString:self.usernameAndCaptionLabel.attributedText];
self.usernameAndCaptionLabel.frame = CGRectMake(0, CGRectGetMaxY(self.mediaImageView.frame), CGRectGetWidth(self.contentView.bounds), sizeOfUsernameAndCaptionLabel.height);
CGSize sizeOfCommentLabel = [self sizeOfString:self.commentLabel.attributedText];
self.commentLabel.frame = CGRectMake(0, CGRectGetMaxY(self.usernameAndCaptionLabel.frame), CGRectGetWidth(self.bounds), sizeOfCommentLabel.height);
// Hide the line between cells
self.separatorInset = UIEdgeInsetsMake(0, CGRectGetWidth(self.bounds)/2.0, 0, CGRectGetWidth(self.bounds)/2.0);
}
最佳答案
唯一可能得到 NaN 的方法是计算 0/0
,所以我推断 height
和 width
self.mediaItem.image.size
的成员可能都是零。也就是说,self.mediaImage.image.size
可能是 CGSizeZero
。
请注意,如果 self.mediaItem
为 nil,或者如果 self.mediaItem.image
为 nil,则 self.mediaItem.image.size
返回 CGSizeZero
。我猜其中之一是零。
你可以很容易地检查这个。在 layoutSubviews
中放置一个断点,或者在其顶部添加一个 NSLog
:
NSLog(@"layoutSubviews: mediaItem=%p image=%p size=%@",
self.mediaItem, self.mediaItem.image,
NSStringFromCGSize(self.mediaItem.image.size));
关于ios - NaN 错误 iOS(NSUInteger 与 CGFloat),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978037/
我坚持我的项目。我定义了一个 NSUInteger 类型的属性,例如: @property NSUInteger maxDepth 我是否将其设为(分配)属性并不重要,Xcode 一直在询问我 Unk
所以我得到了这个警告: Semantic Issue: Incompatible pointer to integer conversion sending 'NSUInteger *' (aka '
我有以下枚举: typedef NS_ENUM(NSUInteger, GraphType) { GraphTypeRawData, GraphTypeFilteredData };
我编辑了一些代码以使用变量而不是数字。 NSUInteger *hoeveelChars = [eersteDertigTek length] - 30; 我变了 substringFromIndex
我有一些涉及负值的计算: row = (stagePosition - col) / PHNumRow; 假设stagePosition为-7,col为1。它们都是NSInteger,包括row。PH
惊喜! 我有一个这样的变量, NSInteger index = 0; 我将它与这样的 subview 计数之一(返回 NSUInteger )进行比较, if((index-1) <= [[curr
这是我的 MyManager numberOfBedrooms 属性的设置方式: @property(nonatomic, assign) NSUInteger numberOfBedrooms; 这
我不太擅长术语..这是我的代码: enum { LoggerLogNone = 0, LoggerLogMessages = 1 _< 最佳答案 - (void)l
我正在查看一个前雇员代码,其中出现了大约 20 个这样的警告: Values of type 'NSUInteger' should not be used as format arguments;
今天我的大脑出了问题。我知道这一定很简单,但我就是不明白。 CGFloat *minutes = [self.displayData objectForKey:index]; 将“NSUInteger
这是我的全部代码: [NSString stringWithFormat:@"Total Properties: %d", (int)[inArray count]]; 这让我收到了 Xcode 5.
我在 NSString 中有一个数字 @"15" .我想将其转换为 NSUInteger,但我不知道该怎么做... 最佳答案 NSString *str = @"15"; // Extract an
如何将十六进制数转换为 nsuinteger 最佳答案 如果您的十六进制数字位于 NSString 中,则可以使用 NSScanner: NSScanner* scanner = [NSScanner
这个问题在这里已经有了答案: Are ints always initialized to 0? (3 个回答) 8 年前关闭。 鉴于以下片段: - (void)doSomething { N
我正在尝试在 iOS 上使用 HKAnchoredObjectQuery。 为此,我必须为查询提供一个 anchor ,在本例中是一个 NSUInteger。我想在 NSUserDefaults 中保
我正在尝试创建一个将使用非常大的数字的应用程序。我想知道 [NSNumber numberWithUnsignedLongLong] 的存储能力是否是我可以获得的最大数量?如果 NSUInteger
代码片段: NSUInteger *lengthOfLine =100; NSUInteger *half = lengthOfLine/2; 第 2 行的编译错误: Invalid operands
我有这样的情况。我想删除可变数组中特定索引中的某些对象。所以我有一种方法可以通过传递索引来做到这一点。但它需要 NSUInteger 作为参数。但我得到了一个整数值作为索引。当我调用我的方法时,参数值
我在 Google 上搜索 TDD 原则时看到了这个演示文稿 http://qualitycoding.org/files/BowlingGame-ObjectiveC.pdf 其中有些东西我不熟悉。
你好,我正在做一个项目,我正在尝试将 NSUInteger 添加到 NSMutableArray。一般来说,我是 Objective-C 和 C 的新手。当我运行应用程序时,NSLog 显示为空。 如
我是一名优秀的程序员,十分优秀!