Ios 如何从字符串转换为int
我正试图从变量str中的“src.”“data lazy-”中获取字符串,当我硬编码它时,它是有效的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>&
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世界中有很多东西需要考虑