我尝试将属性分配给3个newClock字符串的最后一个字符,即@"3:33:23".
但是我在构造时遇到错误NSRange:
NSMutableAttributedString *mas = [[NSMutableAttributedString alloc]initWithString:newClock];
[mas addAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor],
NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:12]}
range:NSMakeRange(newClock.length-3,newClock.length)];
Run Code Online (Sandbox Code Playgroud) 我的代码中有一个错误,例如"无法将类型'NSRange'(又名'_NSRange')的值转换为预期的参数类型'Range'(又名'Range')"但我不知道如何解决这个问题请任何一个帮我?
在这里,我发布我的代码.
NSUserDefaults.standardUserDefaults().setObject("Hey I have started using this Chat App", forKey: "Status")
var strNumber: String = txtPhoneNumber.text!
var myRange: NSRange = NSMakeRange(0, 2)
var myRange1: NSRange = NSMakeRange(0, 1)
var ran: String = strNumber.substringWithRange(myRange) ------> //This line error shows.
var ran1: String = strNumber.substringWithRange(myRange1)
if (ran == "00") || (ran == "60") || (ran == "62") || (ran == "65") || (ran == "91") || (ran == "44") {
strNumber = strNumber.stringByReplacingOccurrencesOfString(ran, withString: "") as String
}
else if (ran1 …Run Code Online (Sandbox Code Playgroud) 我试图在标签上添加一些花哨的文本,但是我遇到了NSMutableAttributedString类的一些问题.我试图实现四个:1.更改字体,2.下划线范围,3.更改范围颜色,4.上标范围.
这段代码:
- (void)applicationDidFinishLaunching:(NSNotification*)aNotification
{
NSMutableAttributedString* display = [[NSMutableAttributedString alloc]
initWithString:@"Hello world!"];
NSUInteger length = [[display string]length] - 1;
NSRange wholeRange = NSMakeRange(0, length);
NSRange helloRange = NSMakeRange(0, 4);
NSRange worldRange = NSMakeRange(6, length);
NSFont* monoSpaced = [NSFont fontWithName:@"Menlo"
size:22.0];
[display addAttribute:NSFontAttributeName
value:monoSpaced
range:wholeRange];
[display addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInt:1]
range:helloRange];
[display addAttribute:NSForegroundColorAttributeName
value:[NSColor greenColor]
range:helloRange];
[display addAttribute:NSSuperscriptAttributeName
value:[NSNumber numberWithInt:1]
range:worldRange];
//@synthesize textLabel; is in this file.
[textLabel setAttributedStringValue:display];
}
Run Code Online (Sandbox Code Playgroud)
给我这个错误:
NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds
Run Code Online (Sandbox Code Playgroud)
此外,我尝试搞乱范围,但当我尝试时变得更加困惑NSRange worldRange = NSMakeRange(4, 5); …
我有一个int64_t值的集合,我需要建立一个索引.我以前用过:
NSIndexSet *set = [NSIndexSet indexSetWithRange:NSMakeRange(location, length)];
Run Code Online (Sandbox Code Playgroud)
制作索引集,但这次我不清楚我将如何根据我的信息做到这一点.
细节:我有一组价值观.我知道集合中的最高值,集合中的最低值以及集合中的值的数量.但是,这些值不一定是连续的.
例如,如果我有以下值:1,3,4,6,7,9我想创建一个包含集合中所有数字的集合,包括1和9之间,即set = 1-9.
我该怎么做?
编辑
我不应该说我有一个整数的"集合",而是 - 我有对象存储在核心数据中,每个对象都有一个与之关联的int64_t属性,所以我没有指向实际的对象集合的指针,我想避免只是为了创建一个集合来获取对象.
我想检查一个字符串是否只包含数字.我遇到了用Objective-C编写的这个答案.
NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
if(range.location == NSNotFound) {
// then it is numeric only
}
Run Code Online (Sandbox Code Playgroud)
我尝试将其转换为Swift.
let range: NSRange = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
Run Code Online (Sandbox Code Playgroud)
我遇到的第一个错误是我分配了类型NSRange.
无法转换表达式的类型'Range?' 输入'NSRange'
所以我删除了NSRange,错误就消失了.然后在if语句中,
let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
if range.location == NSNotFound {
}
Run Code Online (Sandbox Code Playgroud)
我遇到了另一个错误.
'范围?' 没有名为'location'的成员
请注意,变量username的类型String不是NSString.所以我猜Swift使用它的新Range类型而不是NSRange.
问题我不知道如何使用这种新类型来实现这一目标.我也没有遇到过任何文档.
任何人都可以帮我把这个代码转换成Swift吗?
谢谢.
NSRange只是一个C结构.我想在断点处在Xcode中的lldb中创建一个临时的.
专门用于NSArray方法 objectAtIndex:inRange:
这不起作用.
(lldb) expr NSRange $tmpRange = (NSRange){0,4}
(lldb) expr $tmpRange
(NSRange) $tmpRange = location=0, length=4
(lldb) expr -o -- [items indexOfObject:item4 inRange:$tmpRange]
error: no matching constructor for initialization of 'NSRange' (aka '_NSRange')
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)
我的代码有一个badRange在断点处命名的NSRange var ,并将其传递给了.从而:
(lldb) expr -o -- [items indexOfObject:item4 inRange:badRange]
0x7fffffffffffffff
(lldb) expr badRange
(NSRange) $1 = location=0, length=3
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?
谢谢.
如何从开头到指定字符选择字符串?
例如,在下面的新闻标题中......
someString = @"Los Angeles, California - Apple announces something, stock prices change."
如何选择Los Angeles, California -单独的字符串?(我希望在-("破折号")角色之前选择所有内容.
编辑:
说我的标题看起来像这样:
someString = @"Los Angeles, California - Apple announces something - stock prices change."
如何防止我的位置字符串看起来像这样:Los Angeles, California - Apple announces something?
编辑:
我的错误,我正在移除第一个破折号,然后重新发现字符串.我的错误是发布的答案有效.
我收到下面的错误,这没有任何意义.
*由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [NSMutableArray removeObjectsInRange:]:范围{11,15}超出边界[0 .. 15]'
我在这做错了什么?我在数组的范围内.删除数组中的最后一个对象会导致问题吗?
我正在尝试确定a中给定字符串出现的索引String,然后NSRange使用这些索引生成一个以便为a添加属性NSMutableAttributedString.问题是rangeOfString退货,Range<Index>但addAttributes:range:预计会有NSRange.我尝试NSRange从开始和结束索引创建Range失败,因为String.CharacterView.Index不是Int,因此它不会编译.
如何使用Range<Index>值来创建NSRange?
var originalString = "Hello {world} and those who inhabit it."
let firstBraceIndex = originalString.rangeOfString("{") //Range<Index>
let firstClosingBraceIndex = originalString.rangeOfString("}")
let range = NSMakeRange(firstBraceIndex.startIndex, firstClosingBraceIndex.endIndex)
//compile time error: cannot convert value of type Index to expected argument type Int
let attributedString = NSMutableAttributedString(string: originalString)
attributedString.addAttributes([NSFontAttributeName: boldFont], range: range)
Run Code Online (Sandbox Code Playgroud) 我有像这样的"@Mervin测试员"的表情符号的AttributedString
现在我需要在这个属性String中找到一系列Mervin.
let attributedString = NSMutableAttributedString(string: " @Mervin tester ")
let range = // range for "Mervin" in above String.
Run Code Online (Sandbox Code Playgroud)
谢谢.
nsrange ×10
objective-c ×5
ios ×4
swift ×4
range ×2
cocoa-touch ×1
ios7 ×1
ios8 ×1
lldb ×1
macos ×1
nsindexset ×1
nsstring ×1
struct ×1
substring ×1