我有NSString一些句子,我想把它分成NSArray句子.以前有人解决了这个问题吗?我发现enumerateSubstringsInRange:options:usingBlock:哪个能够做到,但看起来它在iPhone上不可用(仅限Snow Leopard).我考虑过基于句点分割字符串,但这似乎不是很强大.
到目前为止,我最好的选择似乎是使用RegexKitLite将其正则化为一系列句子.解决方案?
我有一个方法作为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会导致崩溃,因为选择器实际上是无效的.
我正在开发一个向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
我有一个问题,[NSString strigWithFormat:format]因为它返回一个id,我有很多代码,我将NSString var更改为其他个人类型.但编译器并没有阻止我将NSString设置到另一种类型的对象的地方.
所以我写的NSString的类别和我goind来代替我的所有呼叫stringWithFormat至myStringWithFormat.
代码是:
@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)
编译器告诉我"格式不是字符串文字而没有格式参数".
你有没有办法让这项工作成功?
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) 我有一个以下格式的字符串
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)
谁能告诉我正确的方法呢?
从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) 我的程序中有以下三行代码:
NSMutableString *stringOne = [NSMutableString stringWithFormat:@"Hello "];
NSMutableString *stringTwo = [NSMutableString stringWithFormat:@"World"];
NSMutableString *sayIt = [stringOne stringByAppendingString:stringTwo];
Run Code Online (Sandbox Code Playgroud)
尽管它有效,但第三行导致警告从NSString*分配NSMutableString*.
我在这里不知所措,因为我使用的是NSMutableString.
我看了这个,但答案似乎总是特定于那个问题.
我正在尝试使用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中有很多"+"符号,或者我遗漏了什么?
以下这段代码在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改变了什么,它打破了代码?