标签: nsstring

如何将一个字符串拆分成句子可可

我有NSString一些句子,我想把它分成NSArray句子.以前有人解决了这个问题吗?我发现enumerateSubstringsInRange:options:usingBlock:哪个能够做到,但看起来它在iPhone上不可用(仅限Snow Leopard).我考虑过基于句点分割字符串,但这似乎不是很强大.

到目前为止,我最好的选择似乎是使用RegexKitLite将其正则化为一系列句子.解决方案?

string iphone cocoa objective-c nsstring

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

如何在给定NSString时找出Obj-C中是否存在方法

我有一个方法作为NSString *.如果它存在,我想打电话给它,如果没有,什么都不做.

SEL eventSelector = NSSelectorFromString(eventSelectorStr);
if ([delegate respondsToSelector:eventSelector]) {
    [delegate performSelector:eventSelector];
    [delegate adapterDidFinishAdRequest:self];
}
else {
    // Does not implement selector
}
Run Code Online (Sandbox Code Playgroud)

此代码不起作用,因为NSSelectorFromString将字符串注册为选择器,因此respondsToSelector:eventSelector会导致崩溃,因为选择器实际上是无效的.

iphone objective-c selector nsstring

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

NSString反斜杠转义

我正在开发一个向Web服务发送xml请求的iPhone OS应用程序.为了发送请求,xml被添加到NSString.这样做时,我在xml文件中遇到了引号"和反斜杠\的问题,这些问题需要转义.是否有需要转义的完整字符列表?

Also, is there an accepted way of doing this escaping (ie replacing \ with \\ and " with \") or is it a case of creating a method myself?

Thanks

xml iphone backslash nsstring

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

Cocoa - 从另一个variadic方法调用一个可变方法(NSString stringWithFormat调用)

我有一个问题,[NSString strigWithFormat:format]因为它返回一个id,我有很多代码,我将NSString var更改为其他个人类型.但编译器并没有阻止我将NSString设置到另一种类型的对象的地方.

所以我写的NSString的类别和我goind来代替我的所有呼叫stringWithFormatmyStringWithFormat.

代码是:

@interface NSString (NSStringPerso)
+ (NSString*) myStringWithFormat:(NSString *)format;
@end



@implementation NSString (NSStringPerso)
+ (NSString*) myStringWithFormat:(NSString *)format {
    return (NSString*)[NSString stringWithFormat:format];
}
@end
Run Code Online (Sandbox Code Playgroud)

编译器告诉我"格式不是字符串文字而没有格式参数".

你有没有办法让这项工作成功?

cocoa variadic compiler-warnings nsstring categories

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

调用者此时不拥有的对象的引用计数的不正确的减少

iPhone上的调用者不在此时拥有的对象的引用计数的不正确的减少.它发生在NSString,我明确地在for循环中初始化和释放.我试图像autoreleases字符串一样做,但我得到了泄漏.我认为罪魁祸首是stringbytrimming调用.任何建议,顺便说一下这不泄漏,但我在构建和分析中得到警告.一切也很好,应用程序不会崩溃.

for(int i=0;i<storyQuantity;i++) {
            NSString *imageString = [[NSString alloc] init];
            imageString = [[[storiesArray objectAtIndex:i] objectForKey: @"image"] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];  // must add trimming to remove characters

            imageLoader *imageOperation = [[imageLoader alloc] initWithImageURL:imageString target:self action:@selector(didImageLoad:) number:i];

            AppDelegate_iPad *appDelegate = [[UIApplication sharedApplication] delegate];
            [appDelegate.queue_ addOperation:imageOperation];
            [imageOperation release];
            [imageString release];
        }
Run Code Online (Sandbox Code Playgroud)

UPDATE - 添加了我的imageLoader类,据我所知,这个类没有泄漏

- (id)initWithImageURL:(NSString *)url target:(id)target action:(SEL)action number:(int)number {
    if(self = [super init]) {
        _action = action;
        _target = target;
        _number = number;
        if(url == nil) {
            return nil;
        } else { …
Run Code Online (Sandbox Code Playgroud)

memory iphone xcode trim nsstring

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

如何将字符串转换为带分隔符的数组?

我有一个以下格式的字符串

myString = "cat+dog+cow"
Run Code Online (Sandbox Code Playgroud)

我需要将由+ in分隔的每个字符串存储到一个数组中.例如:

myArray[0] = cat
myArray[1] = dog
myArray[2] = cow
Run Code Online (Sandbox Code Playgroud)

谁能告诉我正确的方法呢?

iphone xcode objective-c nsstring nsarray

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

从NSTextView中提取第一个非空白行的最有效方法是什么?

从NSTextView中提取第一个非空白行的最有效方法是什么?

例如,如果文本是:

\n
\n
    \n
         This is the text I want     \n
 \n
Foo bar  \n
\n
Run Code Online (Sandbox Code Playgroud)

结果将是"这是我想要的文字".

这是我有的:

NSString *content = self.textView.textStorage.string;
NSInteger len = [content length];
NSInteger i = 0;

// Scan past leading whitespace and newlines
while (i < len && [[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:[content characterAtIndex:i]]) {
    i++;
}
// Now, scan to first newline
while (i < len && ![[NSCharacterSet newlineCharacterSet] characterIsMember:[content characterAtIndex:i]]) {
    i++;
}
// Grab the substring up to that newline
NSString *resultWithWhitespace = …
Run Code Online (Sandbox Code Playgroud)

cocoa nsstring nstextview

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

从NSString Warning分配NSMutableString

我的程序中有以下三行代码:

NSMutableString *stringOne = [NSMutableString stringWithFormat:@"Hello "];
NSMutableString *stringTwo = [NSMutableString stringWithFormat:@"World"];
NSMutableString *sayIt = [stringOne stringByAppendingString:stringTwo];
Run Code Online (Sandbox Code Playgroud)

尽管它有效,但第三行导致警告从NSString*分配NSMutableString*.

我在这里不知所措,因为我使用的是NSMutableString.

objective-c nsstring nsmutablestring ios

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

无效的转化说明符'+'

我看了这个,但答案似乎总是特定于那个问题.

我正在尝试使用JSON从Web服务器请求信息,并将信息显示在表视图中.给我带来麻烦的代码如下:

CalendarCommunicator.m:

#import "CalendarCommunicator.h"
#import "CalendarCommDelegate.h"


@implementation CalendarCommunicator

- (void)searchGroupsAtCoordinate:(CLLocationCoordinate2D)coordinate
{
    NSString *urlAsString = [NSString stringWithFormat:@"http://medpak.costarica.com/api/content/render/false/type/json/query/+structureName:calendarEvent%20+(conhost:9fe93d82-1cd8-46b1-9dda-8b940e407d23%20fonhost:SYSTEM_HOST)%20+languageId:1", coordinate.latitude, coordinate.longitude];
    NSURL *url = [[NSURL alloc] initWithString:urlAsString];
    NSLog(@"%@", urlAsString);

    [NSURLConnection sendAsynchronousRequest:[[NSURLRequest alloc] initWithURL:url] queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

        if (error) {
            [self.delegate fetchingGroupsFailedwithError:error];
        } else {
            [self.delegate recievedGroupsJSON:data];
        }
    }];
}

@end
Run Code Online (Sandbox Code Playgroud)

在本NSString *urlAsString节中,我收到了一个URL警告.它说'"无效的转换说明符'+'".这到底是什么意思?URL中有很多"+"符号,或者我遗漏了什么?

objective-c nsstring ios7

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

Swift beta7中的NSString.sizeWithAttributes()

以下这段代码在Xcode 6 beta 5中运行良好:

func fitText(){
    let size = (self.text as NSString).sizeWithAttributes([NSFontAttributeName:self.font]) //Errors here
    self.frame.size = size
}
Run Code Online (Sandbox Code Playgroud)

现在它在第二行给出了以下错误:

'UIFont'不是'NSDictionary'的子类型

无法将表达式的类型'$ T6'转换为'UIFont'类型

当我把它拆分成

let dict = [NSFontAttributeName:self.font]
let size = (self.text as NSString).sizeWithAttributes(dict) //Even stranger errors go here
Run Code Online (Sandbox Code Playgroud)

xcode说:

'UIFont'不是'NSDictionary'的子类型

无法将表达式的类型'[NSString:UIFont]'转换为'CGSize'类型

在测试版7或6中,swift改变了什么,它打破了代码?

nsstring swift xcode6 ios8 xcode6-beta7

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