标签: nsstring

我可以使用选择器(就地)通过其子串对NSStrings的NSMutable数组进行排序吗?

我有一个NSMutableArray组成的NSStrings.当我需要对它进行排序时,我使用的[array sortUsingSelector:@selector(caseInsensitiveCompare:)]是完美的.

但有时我需要通过NSStrings 的子串对数组进行排序.在这种情况下,子串被定义为NSString跟随某个标记的一部分.事实上,标记可以在每个字符串中以不同方式定位.

显然,我可以NSString分成两个对象并对它们进行排序,但这需要进行重大更改.

有没有办法使用类似于我上面描述的选择器进行排序?

我想如果没有,那么我可以通过创建一个数组的排序副本(而不是使用选择器来完成它),然后释放原始数据.

xcode objective-c nsstring nsmutablearray

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

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

"全字"通过NSPredicate在NSString中搜索

我想搜索属性description(NSString实例)中是否有给定的单词.

我试过这个谓词:

[NSPredicate predicateWithFormat:@"description CONTAINS[cd] %@", theWord];
Run Code Online (Sandbox Code Playgroud)

它有效,但它也找到了子词.

例如,给定theWord:

汽车

它也将是这个description:

圣诞颂歌

相反,我希望我的谓词只匹配a,或者christmas,或者carol.

(我正在使用Core Data和NSFetchRequest.)

cocoa-touch core-data nsstring nspredicate nsfetchrequest

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

NSString用单个换行符替换重复的换行符

我有一个NSString可以在字符串之间有多个\n.我需要用单个\n替换\n的多次出现.

我试过这段代码:

newString = [string stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
Run Code Online (Sandbox Code Playgroud)

但是,如果在字符串中遇到一系列"\n \n \n \n \n \n",则无法获得所需的结果.在这种情况下,它们将被替换为"\n \n \n".

我应该怎么做才能将所有多个"\n"替换为单个"\n"?

谢谢大家!

更新:添加UITextView过滤后的字符串设置为文本的屏幕截图.根据Attila H的回答,在编写代码后,新行似乎不止一行. 在此输入图像描述

iphone objective-c nsstring ios

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

如何使用CFStringTransform正确音译西里尔文,没有变音符号?

我正在尝试使用CFStringTransform将以俄语输入的名称音译为安全的ASCII信用卡处理.然而,当剥离变音符号č变成ac时,这实际上不是一个好的音译.无论如何我可以使用CFStringTransform,没有变音符号吗?换句话说,ч,应该返回ch,因为它应该在几乎所有标准http://en.wikipedia.org/wiki/Romanization_of_Russian中

NSMutableString *name = [@"????????" mutableCopy];
CFMutableStringRef nameRef = (__bridge CFMutableStringRef)name;
CFStringTransform(nameRef, NULL, kCFStringTransformToLatin, false); //name is roman?uk
CFStringTransform(nameRef, NULL, kCFStringTransformStripCombiningMarks, false); //name is now romancuk
Run Code Online (Sandbox Code Playgroud)

objective-c nsstring ios cyrillic

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

NSDictionary objectForKey运行时错误的stringValue

所以我有以下代码导致XCode中的运行时错误

NSString* temp = [[param objectforkey@"firstParam"] stringValue];
int tempNum = [[param objectforkey@"secondParam"] intValue];
Run Code Online (Sandbox Code Playgroud)

param从plist加载.firstParam是字符串,secondParam是数字

第一行崩溃了程序.

现在有趣的是,如果我做了一个艰苦的种姓,它是有效的,即:

NSString* temp = (NSString*)[param objectforkey@"firstParam"];
int tempNum = [[param objectforkey@"secondParam"] intValue];
Run Code Online (Sandbox Code Playgroud)

只是想知道为什么id会有不一致的实现,因为我必须使用intValue来转换为int,但是必须进行硬转换以获得NSString?为什么不stringValue?

casting nsdictionary nsstring

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

在NSStrings中检测整个单词

如何检测NSString是否包含特定单词,例如is.

如果NSString是Here is my string. His isn't a mississippi isthmus. It is...?该方法应检测单词is并返回YES.

但是,如果NSString是His isn't a mississipi isthmus,它应该返回NO.

我尝试过使用,if ([text rangeOfString:@"is" options:NSCaseInsensitiveSearch].location != NSNotFound) { ... }但它检测的字符不是单词.

objective-c nsstring ios

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

电话号码格式ios

在我的应用程序中,我将电话号码作为用户的输入.号码应采用美国格式.我想动态地显示它(555)-888-888.例如,当用户在达到4位时开始输入数字时,它显示如下的数字(555)-4,依此类推.我试过replaceString方法,但我发现它不起作用.

nsstring ios

4
推荐指数
2
解决办法
7779
查看次数

NSRunAlertPanel +格式字符串不是字符串文字(可能不安全)

好的,所以我知道格式字符串不是字符串文字警告,但我不知道为什么它出现在NSRunAlertPanel上,定义是:

APPKIT_EXTERN NSInteger NSRunAlertPanel(NSString*title,NSString*msgFormat,NSString*defaultButton,NSString*alternateButton,NSString*otherButton,...)NS_FORMAT_FUNCTION(2,6);

报告错误时,我通常只在消息上传递error.localizedDescription,例如:

NSRunAlertPanel(@"error", err.localizedDescription, @"OK",nil,nil);
Run Code Online (Sandbox Code Playgroud)

但升级到xcode 5.1后,我开始收到此警告.

所以我尝试过这样的事情:

NSRunAlertPanel(@"error", [NSString stringWithFormat:@"%@", err.localizedDescription], @"OK", nil, nil);
Run Code Online (Sandbox Code Playgroud)

和它的情况一样.任何人有任何想法如何解决这个问题?

objective-c nsstring

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

使用swift访问iOS中的联系人详细信息

使用Objective-C时,我们通常使用以下代码来获取详细信息

NSString *firstName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);
Run Code Online (Sandbox Code Playgroud)

在Swift中我尝试了以下内容

var firstName : NSString = ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty).takeUnretainedValue() as NSString
Run Code Online (Sandbox Code Playgroud)

而且由于错误,我无法构建

Bitcast requires both operands to be pointer or neither
  %224 = bitcast %objc_object* %223 to %PSs9AnyObject_, !dbg !486
Bitcast requires both operands to be pointer or neither
  %225 = bitcast %PSs9AnyObject_ %224 to i8*, !dbg !486
LLVM ERROR: Broken function found, compilation aborted!
Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 1

nsstring abaddressbook ios swift

4
推荐指数
2
解决办法
1389
查看次数