- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在没有 kCTFontAttributeName
范围的现有 NSAttributedString
上调用以下选择器:
[attributedString enumerateAttribute:(NSString *) kCTFontAttributeName
inRange:NSMakeRange(0, [attributedString length])
options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
usingBlock:^(id value, NSRange range, BOOL *stop) {
NSLog(@"Attribute: %@, %@", value, NSStringFromRange(range));
}];
我得到了下面的输出,但我预计不会得到任何输出。有建议吗?
Attribute: (null), {0, 27}
Attribute: (null), {27, 1}
Attribute: (null), {28, 1}
Attribute: (null), {29, 1}
Attribute: (null), {30, 1}
最佳答案
简短的回答? -enumerateAttribute:inRange:options:usingBlock:
并没有按照您(或我最初)的想法进行操作。
从名称来看,您可能会假设它仅枚举包含给定属性的接收器范围。不是这种情况。它总是枚举整个字符串。它为它遇到的每个运行调用 block 。传递到 block 中的 value
设置为该运行的给定属性的值。如果当前运行不包含给定属性,则会传递 nil
作为 value
。
因此,对于不包含给定属性的字符串,它仍然会触发该 block ,但值
将始终为nil
。对于完全被给定属性(具有相同值)覆盖的字符串,您希望该 block 触发一次,且 value
等于该属性在字符串中的值。对于部分被给定属性覆盖的字符串,您会期望该 block 会触发多次,有时使用 value
为 nil
,有时使用 值
等于属性的值。
希望有帮助。我也花了一段时间才从正确的方向看它。
关于cocoa - 停止 enumerateAttribute :inRange:options:usingBlock: from calling my block with nil values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4555472/
我是 block 编程新手。我的 Listener 类中有以下代码(不使用 arc): - (void)someBlock:((void)^(NSDictionary *)myDictionary)m
我对 objective-c 中的 block 还是个新手,想知道我的伪代码是否正确。我不确定只删除观察者是否足够,或者我是否必须调用 removeObserver:name:object: -(vo
我正在调用上述函数,它正确地遍历所有匹配项。但是,在处理完所有匹配的 block 后,它并没有完成执行。我可能做错了什么? 使用的正则表达式是:/\[([^\[\{,]*(,\n)?)*\]/ 最佳答
我正在解析一个如下所示的 XML 文件: 我正在使用 Rapture XML 库,因此如 GitHub 上所述,我执行以下操作: RXMLElement *rxmlPa
我正在编写一个库以使用 AVFoundation 将 Assets 导出到文件。我创建了一个读取器和一个写入器,将输入和输出连接到这些,然后对输入调用 requestMediaDataWhenRead
我有以下代码在加载 View 时添加观察者。 - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter def
我正在摆弄一个小型 Swift 应用程序。在其中,用户可以通过单击应用程序菜单中的“新建”来创建任意数量的 MainWindow 实例。 应用程序委托(delegate)保存一个类型为MainWind
我注意到即使我将 *stop BOOL 指针设置为 YES,我的枚举 block 也会被执行两次。我以为设置 *stop = YES 会在第一个之后停止? [lib enumerateGroupsWi
我尝试使用 enumerateObjectsWithOptions:usingBlock 方法枚举数组。然而,我的代码很少能工作。当它不起作用时,我的应用程序会卡住(但没有沙滩球)——我对 block
我需要在后台将视频发布到服务器。到目前为止,我在发布时一直使用这种模式: - (BOOL)loginUser:(user *)user { BOOL ret = NO; AppDele
我在一个使用 RestKit 的项目中。在我们决定升级到 0.10.0 之前,我们一直在使用 0.9.2 版本。在对我的代码进行一些小改动以使其与新版本的 RestKit 兼容之后,我在使用 load
我对为什么在以下代码中从未删除观察者感到困惑。在我的 viewDidAppear 中,我有以下内容: -(void)viewDidAppear:(BOOL)animated{ id gpsObserv
我在没有 kCTFontAttributeName 范围的现有 NSAttributedString 上调用以下选择器: [attributedString enumerateAttribute:(N
我在解析器中使用了一个正则表达式,但是,它似乎给出了很多结果,这是我的代码:正则表达式: self.seatSelectRegex = [NSRegularExpression regularExpr
我正在开发一个基于 ALAssetsLibrary api(从 4.0 开始可用)的 iOS 应用程序,我用它来检索设备上保存的所有图像和视频,这非常简单。不管怎样,只要我在我的 iPhone 4 上
我是一名优秀的程序员,十分优秀!