我想NSString用Objective C中的另一个子串替换子串.
我知道如何找到我想要替换的子字符串:
NSRange range = [string rangeOfString:substringIWantToReplace];
NSString *substring = [string substringFromIndex:NSMaxRange(range)];
Run Code Online (Sandbox Code Playgroud)
但是当涉及到实际移除/替换它时,我有点困惑.我是否在使用另一个子串C++替换substring的C++方法?或者C方法如何替换c中的子串??在Objective-C上有一个相关的问题:子串和替换,但是有问题的字符串是一个URL,所以我认为我不能使用答案.
我正在关注的objc教程使用以下初始化:
NSString* p = [[NSString alloc] initWithString:@"something"];
Run Code Online (Sandbox Code Playgroud)
但是,前一章中所述的相同教程可以将这些类型的结构分解为:
NSString* p = [NSString alloc];
[p initWithString: @"something"];
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用NSLog 显示p的值,则会发生异常:
main: Uncaught exception NSInternalInconsistencyException, reason: attempt to use uninitialised string
Run Code Online (Sandbox Code Playgroud)
这可能很容易,但我似乎无法找到答案.
我有一个NSString存储保存文件的路径:
NSString *filePath = [NSString stringWithFormat:
@"%@/someFolder/%@",
NSHomeDirectory(),
[NSString stringWithFormat:@"%@",[self.fileName stringByAppendingPathExtension:@"txt"]]];
Run Code Online (Sandbox Code Playgroud)
它没关系 - 当我记录它时,我得到:
/Users/username/someFolder/fileName.txt
Run Code Online (Sandbox Code Playgroud)
所以我的下一步是从中创建一个NSURL对象NSString.我这样做了:
NSURL *pathURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@", filePath]];
NSLog(@"URL = %@", pathURL);
Run Code Online (Sandbox Code Playgroud)
但回应是:
URL = (null)
Run Code Online (Sandbox Code Playgroud)
这有什么不对?我该怎么做才能正确?
在我的核心数据模型中,"金额"是实体"跟踪"中的属性.如何在整个代码中将金额转换为NSDecimalNumber?我相信有经验的人可以在3分钟内做到这一点,我已经看了好几天了.
- (IBAction)save {
if (![amount.text isEqualToString:@""]) {
Tracking *tracking = [NSEntityDescription insertNewObjectForEntityForName:@"Tracking"
inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *weightEntity = [NSEntityDescription entityForName:@"Tracking" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:weightEntity];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSError *error = nil;
NSArray *result = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
Tracking *person = [result objectAtIndex:0];
NSLog(@"%@",person.date);
NSDate *date = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"MMM dd, yyyy"];
NSString *dateString = [dateFormat stringFromDate:date];
//NSString *dateString = @"Jan 13 2013";
//Tracking *track …Run Code Online (Sandbox Code Playgroud) 我有一个字典声明,像这样,
NSString *responseString = [request responseString];
responseDict = [responseString JSONValue];
for (id key in responseDict){
NSLog(@"%@ : %@", key, [responseDict objectForKey:key]);
}
Run Code Online (Sandbox Code Playgroud)
结果:
013-01-22 00:14:02.323 PromoTest[2352:c07] A : 0
2013-01-22 00:14:02.325 PromoTest[2352:c07] B : 1
2013-01-22 00:14:02.325 PromoTest[2352:c07] C : 0
Run Code Online (Sandbox Code Playgroud)
现在,我想比较值并对其进行一些操作.我假设一个键的值是NSString类型,并将它与我的常量NSString进行比较,像这样,
NSString *myString1 = @"0";
NSString *myString2 = [responseDict objectForKey:@"A"];
NSLog(@"%d", (myString1 == myString2)); //1
NSLog(@"%d", [myString1 isEqualToString:myString2]); //1
Run Code Online (Sandbox Code Playgroud)
结果:
2013-01-22 00:19:12.966 PromoTest[2423:c07] 0
2013-01-22 00:19:12.966 PromoTest[2423:c07] 0
Run Code Online (Sandbox Code Playgroud)
我哪里错了?我的比较错了吗?如何正确比较内容?
数据作为来自Web服务的响应数据被接收.我只是将数据转换为字典以便于使用它.Web服务返回一个JSON对象,
{"A":0,"B":1,"C":0}
Run Code Online (Sandbox Code Playgroud) 有没有办法找到nsstring中的下一行字符.我的意思是第二行人物......
我想在nsstring的第二行找到这个词...... Plz帮帮我们......我是xcode的新手......
我正在使用
NSString *substring = [text substringToIndex:[text rangeOfString:@" "].location];
Run Code Online (Sandbox Code Playgroud)
我想找出整个文本中的空白空间...我能够在nsstring的第一行找到空白空间..但是在第二行也有相同的空白空间..但它无法识别. ..
我想知道是否有一种简单的方法来比较一个const char与一个NSString,或者我是否必须NSString在执行之前将const char转换为一个?
我一直在浏览Apple文档,但很难找到我的问题的答案.
我想用一些其他组件替换myurl中的一些组件,但它不起作用..
这是我的代码段:
NSString *Url =@"http://www.myData.com/pageId=aaa&pageSize=bbb&page=2"
Run Code Online (Sandbox Code Playgroud)
在上述网址我想取代aaa与str1和bbb与str2..
[Url stringByReplacingOccurrencesOfString:@"aaa" withString:str1];
[Url stringByReplacingOccurrencesOfString:@"bbb" withString:str2];
NSLog(@"Final Url = %@",Url);
Run Code Online (Sandbox Code Playgroud)
最后当我看到我的日志,Final Url不替换aaa用str1,并bbb用str2..
谢谢阅读...
NSString *string1 = @"\u03C0";
NSLog(@"string1: %@", string1); // result of a Pi symbol
NSString *string2 = @"03C0";
NSString *string3 = [@"\\u" stringByAppendingString:string2];
NSLog(@"string3: %@", string3); // result of \u03C0 but need it to be a Pi symbol as well
Run Code Online (Sandbox Code Playgroud)
我认为string3会给出与string1相同的结果.但事实并非如此.知道如何解决这个问题吗?
我有一个NSTokenFiled通过-tokenField:shouldAddObjects:atIndex:委托方法验证插入的令牌.不幸的是,只有当用户按下标记字符时才会调用此方法.当他/她在控件外部单击时,按esc或tab,未完成的字符串将自动转换为令牌而不调用验证方法.
在询问谷歌后,我注意到问题已知并且stackoverflow上有人建议覆盖-control:isValidObject:委托方法以验证剩余的字符串.
不幸的是,传递给此方法的对象是NSMutableString对于已经插入到令牌字段中的每个令牌都具有不可见字符.可能这就是可可如何跟踪显示令牌的位置.
我的问题是:如何删除这些非法字符?
到目前为止,我尝试过这些:
NSString *newString = [NSString stringWithUTF8String:[stringWithInvisibleCharcters UTF8String]];
NSString *newString = [stringWithInvisibleCharacters stringByTrimmingCharactersInSet:[NSCharacterSet illegalCharacterSet]];
NSString *newString = [stringWithInvisibleCharacters stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
Run Code Online (Sandbox Code Playgroud)
没有成功.我知道最后两个只适用于令牌字符位于开头和结尾的情况,但到目前为止这是我的情况.
编辑:
如果它有助于记录字符
NSLog(@"%hu",[(NSMutableString *)object characterAtIndex:0]);
Run Code Online (Sandbox Code Playgroud)
返回65532.
nsstring ×10
objective-c ×7
ios ×3
cocoa ×2
macos ×2
xcode ×2
const-char ×1
core-data ×1
ipad ×1
iphone ×1
nsdictionary ×1
nsurl ×1
substring ×1
unicode ×1