标签: nsstring

如何在Objective C中用另一个子串替换一个子串?

我想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,所以我认为我不能使用答案.

substring objective-c nsstring

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

(可能非常简单)initWithString似乎不起作用

我正在关注的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)

这可能很容易,但我似乎无法找到答案.

objective-c nsstring

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

从NSString创建NSURL的正确方法是什么?

我有一个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)

这有什么不对?我该怎么做才能正确?

macos cocoa nsurl nsstring

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

将NSString转换为NSDecimalNumber

在我的核心数据模型中,"金额"是实体"跟踪"中的属性.如何在整个代码中将金额转换为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)

xcode core-data nsstring nsdecimalnumber

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

目标C:比较字典内容

我有一个字典声明,像这样,

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)

objective-c nsdictionary nsstring

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

如何在nsstring中找到下一行

有没有办法找到nsstring中的下一行字符.我的意思是第二行人物......

我想在nsstring的第二行找到这个词...... Plz帮帮我们......我是xcode的新手......

我正在使用

NSString *substring = [text substringToIndex:[text rangeOfString:@"            "].location];
Run Code Online (Sandbox Code Playgroud)

我想找出整个文本中的空白空间...我能够在nsstring的第一行找到空白空间..但是在第二行也有相同的空白空间..但它无法识别. ..

xcode objective-c nsstring ios

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

将Objective-C const char与NSString进行比较

我想知道是否有一种简单的方法来比较一个const char与一个NSString,或者我是否必须NSString在执行之前将const char转换为一个?

我一直在浏览Apple文档,但很难找到我的问题的答案.

const-char objective-c nsstring

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

stringByReplacingOccurrencesOfString不起作用

我想用一些其他组件替换myurl中的一些组件,但它不起作用..

这是我的代码段:

NSString *Url =@"http://www.myData.com/pageId=aaa&pageSize=bbb&page=2"
Run Code Online (Sandbox Code Playgroud)

在上述网址我想取代aaastr1bbbstr2..

    [Url stringByReplacingOccurrencesOfString:@"aaa" withString:str1];
    [Url stringByReplacingOccurrencesOfString:@"bbb" withString:str2];

    NSLog(@"Final Url = %@",Url);
Run Code Online (Sandbox Code Playgroud)

最后当我看到我的日志,Final Url不替换aaastr1,并bbbstr2..

谢谢阅读...

iphone nsstring ipad ios

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

使用escape将NSString转换为unicode

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相同的结果.但事实并非如此.知道如何解决这个问题吗?

unicode objective-c nsstring ios

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

从NSString中删除令牌字符

我有一个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.

macos cocoa objective-c nsstring

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