标签: nsstring

stringWithFormat生成带有乱码字符的字符串

调试以下代码时

NSString *var1 = @"blaa";
NSString *var2 = @"blaaaaa";

NSString* script = [NSString stringWithFormat:@"Set_Variable( %s, %s )",var1,var2]; 
Run Code Online (Sandbox Code Playgroud)

%s脚本中的占位符被有趣的乱码字符替换.你能看到代码中的任何错误吗?

iphone xcode objective-c nsstring ios

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

如何在两个连接的NSStrings之间添加空格?

我有三个字符串对象:

NSString *firstName;
NSString *lastName;
NSString *fullName;
Run Code Online (Sandbox Code Playgroud)

为价值观firstNamelastName从NSTextFields接收.

然后我想连接两个字符串并将结果放入 fullname.

这是我正在使用的代码:

fullName = [firstName stringByAppendingString:lastName];
Run Code Online (Sandbox Code Playgroud)

但是,结果不会在两个名称之间留出空格(例如JohnSmith).

如何添加空间?我希望结果看起来像(约翰史密斯).

concatenation objective-c nsstring

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

我怎样才能像iPhone短信一样强调部分文字?

我使用UILabel以多行和UILineBreakModeWordWrap模式显示我的文本,最大宽度为200.
例如,这里是文本:

I really really want to underline first word and second word, could you help me?

我想强调"第一个字"和"第二个字".

如果文本以单行模式显示,使用NSString的sizeWithFont方法,我可以轻松地计算"第一个单词"的位置,然后覆盖 - (void)drawTextInRect:(CGRect)rect来绘制该行.

但在多线模式下,我不知道如何获得这个位置.你有什么主意吗?

iphone nsstring uilabel

3
推荐指数
2
解决办法
5423
查看次数

这两种创建NSStrings的方法有什么区别?

  1. NSString *myString = @"Hello";

  2. NSString *myString = [NSString stringWithString:@"Hello"];

我知道使用方法(1)创建一个指向字符串文字的指针,该字符串文字被定义为静态内存(并且不能被释放),并且使用(2)创建一个将被自动释放的NSString对象.

  • 使用方法(1)不好吗?
  • 有哪些主要区别?
  • 有没有你想要使用的情况(1)?
  • 有性能差异吗?

PS我已经在Stack Overflow上进行了广泛的搜索,虽然对同一主题有疑问,但他们都没有回答我上面发布的问题.

memory-management objective-c string-literals nsstring

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

从NSString获取长值

我需要从中得到一个longNSString.

例如,我有这个:

NSString *test = @"5437128";
Run Code Online (Sandbox Code Playgroud)

我需要:

long myLong = 5437128;   
Run Code Online (Sandbox Code Playgroud)

我如何从中获得这个long价值NSString

谢谢,它会对我有所帮助!

objective-c nsstring ios long-integer

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

使用NSRange的问题:索引越界

我正在尝试检测我的字符串中的网站URL,然后做一些归属字符串,如粗体等.

我的正则表达式定义为:

static NSRegularExpression *websiteRegularExpression;
static inline NSRegularExpression * WebsiteRegularExpression() {
    if (!websiteRegularExpression) {
        websiteRegularExpression = [[NSRegularExpression alloc] initWithPattern:@"\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[A-Z0-9+&@#/%=~_|]" 
                                                                        options:NSRegularExpressionCaseInsensitive 
                                                                          error:nil];
    }

    return websiteRegularExpression;
}
Run Code Online (Sandbox Code Playgroud)

这是我列举的地方:

 -(void)setBodyText
    {
        __block NSRegularExpression *regexp = nil;    
        bodyLabel.delegate = self;
        [self.bodyLabel setText:@"http://www.google.com" afterInheritingLabelAttributesAndConfiguringWithBlock:^NSAttributedString *(NSMutableAttributedString *mutableAttributedString) {

            NSRange stringRange = NSMakeRange(0, [mutableAttributedString length]);

            regexp = WebsiteRegularExpression ();
            NSRange nameRange = [regexp rangeOfFirstMatchInString:[mutableAttributedString string] options:0 range:stringRange];
            UIFont *boldSystemFont = [UIFont boldSystemFontOfSize:18.0]; 
            CTFontRef boldFont = CTFontCreateWithName((CFStringRef)boldSystemFont.fontName, boldSystemFont.pointSize, NULL);
            if (boldFont) {
                [mutableAttributedString addAttribute:(NSString *)kCTFontAttributeName value:(id)boldFont range:nameRange];
                CFRelease(boldFont); …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch nsstring nsrange

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

是否有必要在alloc语句中设置autorelease?

假设以下代码,

NSString *str=[[NSString alloc] initWithString:@"sagar"];


[str autorelease];
Run Code Online (Sandbox Code Playgroud)

我已经多次看到,大多数程序员都喜欢在一个语句中同时放置alloc,init.

在这里,我要求为下一个声明划分自动释放的可能性.

  • 例如,建议将init与alloc语句放在一起.自动释放是否相同?

iphone objective-c nsstring

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

NSString新行在邮件中不起作用?

当用户发送邮件时,我想要显示两个UITextView.问题是我希望第二个textview中的文本显示在邮件的新行中.

我已经尝试过使用NSLog,它在那里工作得很好,邮件API有问题或为什么不能正常工作?

我的代码看起来像这样:

NSString *desc = descriptionTextView.text;
NSString *ingredients = ingredientsTextView.text;
NSString *emailBody = [NSString stringWithFormat:@"%@\n\n%@", desc, ingredients];
NSLog(@"%@\n\n%@", desc, ingredients);

-(void)displayComposerSheet 
Run Code Online (Sandbox Code Playgroud)

{MFMailComposeViewController*picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self;

[picker setSubject:titleLabel.text];
NSString *desc = descriptionTextView.text;
NSString *ingredients = ingredientsTextView.text;
NSString *emailBody = [NSString stringWithFormat:@"%@\n\n%@", desc, ingredients];
NSLog(@"%@\n\n%@", desc, ingredients);
[picker setMessageBody:emailBody isHTML:YES];


[self presentModalViewController:picker animated:YES];
[picker release];
Run Code Online (Sandbox Code Playgroud)

}

- (void)viewDidLoad {
titleLabel.text = [recipeData valueForKey:@"title"];
descriptionTextView.text = [recipeData valueForKey:@"description"];
ingredientsTextView.text = [recipeData valueForKey:@"ingredients"];
[super viewDidLoad];
Run Code Online (Sandbox Code Playgroud)

}

iphone nsstring mfmailcomposer

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

iOS:在stringwithformat中的if-else

我是iOS新手,所以请耐心等待.

我想使用stringWithFormat构造一个字符串,但我想只在条件为真时才放入字符串的一部分.我怎样才能实现像 -

myString = [NSString stringWithFormat:@"%@%@", 
           @"myString1",
           //put myString2 only if (someCondition)]
Run Code Online (Sandbox Code Playgroud)

如果我不够清楚,请告诉我.

iphone if-statement nsstring stringwithformat ios

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

将NSString的NSArray转换为NSNumber的NSArray的更好方法

是否有更好的方法来转换NSArrayNSStringNSArrayNSNumber比下面的代码:

-(NSArray*) convertStringArrayToNumberArray:(NSArray *)strings {
    NSMutableArray *numbers = [[NSMutableArray alloc] initWithCapacity:strings.count];
    for (NSString *string in strings) {
        [numbers addObject:[NSNumber numberWithInteger:[string integerValue]]];
    }
    return numbers;
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsnumber nsstring nsarray ios

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