标签: nsrange

改进在文本正文中查找URL的算法 - obj-c

我正在尝试提出一种算法来查找文本正文中的URL.我目前有以下代码(这是我坐下来破解代码,我知道必须有更好的方法):

    statusText.text = @"http://google.com http://www.apple.com www.joshholat.com";

NSMutableArray *urlLocations = [[NSMutableArray alloc] init];

NSRange currentLocation = NSMakeRange(0, statusText.text.length);
for (int x = 0; x < statusText.text.length; x++) {
    currentLocation = [[statusText.text substringFromIndex:(x + currentLocation.location)] rangeOfString:@"http://"];
    if (currentLocation.location > statusText.text.length) break;
    [urlLocations addObject:[NSNumber numberWithInt:(currentLocation.location + x)]];
}
currentLocation = NSMakeRange(0, statusText.text.length);
for (int x = 0; x < statusText.text.length; x++) {
    currentLocation = [[statusText.text substringFromIndex:(x + currentLocation.location)] rangeOfString:@"http://www."];
    if (currentLocation.location > statusText.text.length) break;
    [urlLocations addObject:[NSNumber numberWithInt:(currentLocation.location + x)]];
}
currentLocation = NSMakeRange(0, …
Run Code Online (Sandbox Code Playgroud)

algorithm url objective-c nsrange

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

ios nsrange char来自最后

比方说我有:

this - is an - example - with some - dashes

NSRange 将使用`rangeOfString:@" - 来接收" - "的第一个实例 - "但如果我只想要最后一个怎么办?

我在寻找的东西的工作原理类似于lastIndexOfJS.谢谢!

ios nsrange

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

这两个范围是否相交?如果是这样,我怎么知道?

来自苹果的文档

返回值 描述 range1 和 range2 的交集的范围,即包含存在于两个范围中的索引的范围。

讨论 如果返回的范围的长度字段为 0,则两个范围不相交,并且位置字段的值未定义。

好的,假设我有两个范围:

(lldb) p rangeOne
(NSRange) $3 = location=11, length=4
(lldb) p rangeTwo
(NSRange) $4 = location=14, length=0
Run Code Online (Sandbox Code Playgroud)

我计算交集:

NSRange intersection = NSIntersectionRange(rangeOne, rangeTwo);
Run Code Online (Sandbox Code Playgroud)

结果是:

(lldb) p intersection
(NSRange) $5 = location=14, length=0
Run Code Online (Sandbox Code Playgroud)

我该怎么办?长度为零,所以位置未定义?但在这种情况下,结果正是我所期望的;我可以相信吗?计算一个范围长度为零的范围的交集是否无效?

objective-c foundation ios nsrange

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

检查一个 NSRange 是否在另一个 NSRange 内或快速与它相交?

如果 case 1 : range1 是 (5,10) 而 range2 是 (8,0) 它应该返回true。情况 2 : range1 是 (5,10) 并且 range2 是 (5,4) 它应该返回true。case 3 如果 range1 是 (5,10) 而 range2 是 (14,20) 它应该返回 true。如何实现一个在所有情况下都返回 true 的函数。我想检查一个范围是否与另一个范围相交或完全在其中。

nsrange swift

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

在特定字符之前和之后获取NSString的一部分范围

我有一个非常简单的问题,但是我不知道如何从头脑中接近它.我想得到我的NSString的两个部分的范围.

我有一段时间,比方说9:42,我想隔离字符串的小时和分钟部分的NSRange,所以字符串前面的部分,以及之后的部分.

有没有人有最好的方法来解决这个问题?谢谢!

string objective-c nsstring ios nsrange

0
推荐指数
1
解决办法
1537
查看次数

是否可以在rangerOfCharacterFromSet上调用"location"而不在objective-c中使用点表示法?

我试图写这个没有点符号,但无法弄清楚:

[[textField text] rangeOfCharacterFromSet:someInstanceVar].location
Run Code Online (Sandbox Code Playgroud)

我一直在 bad receiver type NSRange (aka '_struct NSRange')

这不可能吗?

亲切的问候

cocoa-touch objective-c nscharacterset nsrange ios7

0
推荐指数
1
解决办法
70
查看次数

如何使用ranged属性创建不可变的NSAttributedString

如何NSAttributedString使用ranged属性初始化?

就目前而言,我只能弄清楚如何在初始化后添加一个ranged属性,这显然不适用于不可变NSAttributedString实例.

如果我有NSMutableAttributedString,我可以打电话:

[str addAttribute:NSLinkAttributeName value:url range:range];
Run Code Online (Sandbox Code Playgroud)

如果我有NSAttributedString,我可以构建它:

[[NSAttributedString alloc] initWithString:str attributes:@{NSLinkAttributeName: url}];
Run Code Online (Sandbox Code Playgroud)

但我找不到将范围放入attributesDict的方法.

谢谢,

objective-c nsattributedstring ios nsrange

0
推荐指数
1
解决办法
3394
查看次数

如何从NSString中删除字符并替换为空格?

我有一个NSString:

NSString *string1 = @"http://example.com/this-is-an-example-post"
Run Code Online (Sandbox Code Playgroud)

通过删除一系列特征,我将其包含在:

NSString *string2 = @"this-is-an-example-post"
Run Code Online (Sandbox Code Playgroud)

但我正在努力将其纳入以下形式:

NSString *string3 = @"this is an example post"
Run Code Online (Sandbox Code Playgroud)

有帮助吗?非常感激.

objective-c nsstring ios nsrange

-3
推荐指数
1
解决办法
2585
查看次数