Ios 如何从字符串转换为int

Ios 如何从字符串转换为int,ios,swift,Ios,Swift,我正试图从变量str中的“src.”“data lazy-”中获取字符串,当我硬编码它时,它是有效的 var str = "<h1 style=\"font-family: Helvetica\">Hello Pizza</h1><p>Tap the buttons above to see <strong>some cool stuff</strong> with <code>UIWebView</code>&

我正试图从变量str中的“src.”“data lazy-”中获取字符串,当我硬编码它时,它是有效的

var str = "<h1 style=\"font-family: Helvetica\">Hello Pizza</h1><p>Tap the buttons above to see <strong>some cool stuff</strong> with <code>UIWebView</code><p><img src=\"https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg\" data-lazy-src=\"xxxxxxx\">"

str.rangeOfString(" src")?.startIndex
str.rangeOfString("data-lazy-")?.endIndex

let myNSString = str as NSString

myNSString.substringWithRange(NSRange(location: 150, length: 245-150))
var str = "<h1 style=\"font-family: Helvetica\">Hello Pizza</h1><p>Tap the buttons above to see <strong>some cool stuff</strong> with <code>UIWebView</code><p><img src=\"https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg\" data-lazy-src=\"xxxxxxx\">"

str.rangeOfString(" src")?.startIndex
str.rangeOfString("data-lazy-")?.endIndex

let myNSString = str as NSString

let start = str.startIndex.toInt()
let end   = str.endIndex.toInt()

myNSString.substringWithRange(NSRange(location: start, length: end - start))
结果:
src=\”https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg\“数据延迟-


在这里,我尽量不硬编码它

var str = "<h1 style=\"font-family: Helvetica\">Hello Pizza</h1><p>Tap the buttons above to see <strong>some cool stuff</strong> with <code>UIWebView</code><p><img src=\"https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg\" data-lazy-src=\"xxxxxxx\">"

str.rangeOfString(" src")?.startIndex
str.rangeOfString("data-lazy-")?.endIndex

let myNSString = str as NSString

myNSString.substringWithRange(NSRange(location: 150, length: 245-150))
var str = "<h1 style=\"font-family: Helvetica\">Hello Pizza</h1><p>Tap the buttons above to see <strong>some cool stuff</strong> with <code>UIWebView</code><p><img src=\"https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg\" data-lazy-src=\"xxxxxxx\">"

str.rangeOfString(" src")?.startIndex
str.rangeOfString("data-lazy-")?.endIndex

let myNSString = str as NSString

let start = str.startIndex.toInt()
let end   = str.endIndex.toInt()

myNSString.substringWithRange(NSRange(location: start, length: end - start))
上面的代码显示错误消息“String.index”没有名为“toInt”的成员 我的问题是如何解决这个问题?
很抱歉,我对swift编程语言相当陌生。

铸造不是问题

方法
substringWithRange()
接受
Range
的参数,即Swift范围,并且可以使用
String.Index
类型的参数创建
Range
。因此,使用:

// I'm ignoring optionals; this code is unsafe and thus only an example
let beg = str.rangeOfString(" src")!
let end = str.rangeOfString("data-lazy-")!

str.substringWithRange(Range(start: beg.endIndex, end: end.startIndex))
具体而言:

 15> var str = "abc src=def xyz" 
str: String = "abc src=def xyz"
 16> var si = str.rangeOfString("src=")!
si: Range<String.Index> = { ... }
 17> var ei = str.rangeOfString(" xyz")!
ei: Range<String.Index> = { ... }
 18> str.substringWithRange(Range (start: si.endIndex, end: ei.startIndex))
$R3: String = "def"
15>var str=“abc src=def xyz”
str:String=“abc src=def xyz”
16> var si=str.rangeOfString(“src=”)!
si:范围={…}
17> 变量ei=str.rangeOfString(“xyz”)!
ei:范围={…}
18> str.substringWithRange(范围(开始:si.endIndex,结束:ei.startIndex))
$R3:String=“def”
不要被“String.Index”中的“Index”一词所迷惑——这与
s[i]
中的“i”不同。
String.Index
是不透明的数据类型;它的行为更像一个指针(在类C语言中)。
String.Index
在Swift字符串的Unicode世界中有很多东西需要考虑