标签: nsstring

将 uint8_t 转换为 NSString

刚开始学习objective-c,并试图将字节数组转换为UTF8 NSString,但一直为nil/null。
这是缩写的代码示例。

enum {
  TMessageType_CALL = 1,
  TMessageType_REPLY = 2,
  TMessageType_EXCEPTION = 3,
  TMessageType_ONEWAY = 4
};

int32_t VERSION_1 = 0x80010000;

int value = VERSION_1 | TMessageType_CALL;
uint8_t buff[4];
buff[0] = 0xFF & (value >> 24);
buff[1] = 0xFF & (value >> 16);
buff[2] = 0xFF & (value >> 8);
buff[3] = 0xFF & value;

  //Convert buff to NSString with offset =0, length =4
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法。

NSString *t = [[NSString alloc] initWithBytes:buff length:4 encoding:NSUTF8StringEncoding];
NSString *t1 = [NSString stringWithUTF8String:(char *)buff]; …
Run Code Online (Sandbox Code Playgroud)

encoding objective-c character-encoding nsstring ios

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

基于可变数量的参数构建 NSString

我的函数采用字典参数和可变数量的NSString变量。所有这些组合都放入一个[NSString stringWithFormat:]方法中,并作为NSURLRequest. 该方法如下所示:

- (NSURLRequest *)buildPath:(NSString *)stringPath attributes:(NSString *)attribute, ...
{
    va_list list;
    NSString *eachObject;
    NSMutableArray *args = [NSMutableArray array];

    [args addObject:attribute];
    va_start(list, attribute);
    while ((eachObject = va_arg(list, NSString *))) {
        [args addObject:eachObject];
    }
    va_end(list);

    NSString *listOfAttributes = [args componentsJoinedByString:@", "];
    NSString *pathURL = _requestString[stringPath];
    NSString *path = [NSString stringWithFormat:pathURL, listOfAttributes];

    NSURL *url = [NSURL URLWithString:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

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

这是我调用该方法时的样子:

NSURLRequest *request = [_venueService buildPath:@"categories"
                                          attributes:_venueService.clientID, _venueService.clientSecret, _venueService.todaysDate, nil]; …
Run Code Online (Sandbox Code Playgroud)

objective-c variadic-functions nsstring stringwithformat ios

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

如何将 unicode char 放入 NSString

例如,我可以输入一个表情符号字符代码,例如:

NSString* str = @"";
NSLog(@"%@", str);
Run Code Online (Sandbox Code Playgroud)

将在控制台中看到微笑表情符号。

也许代码编辑器和编译器会在 UTF-8 中交换文字。

现在我在一个完整的 unicode 中工作,我的意思是每个字符 32 位,环境,我有表情符号的 unicode,我想将 32 位 unicode 转换为 NSString 例如:

int charcode = 0x0001F60A;
NSLog(@"%??", charcode);
Run Code Online (Sandbox Code Playgroud)

问题是我应该把什么放在“??” 位置然后我可以将字符代码格式化为表情符号字符串?

顺便说一句,charcode 是一个在编译时无法确定的变量。

我不想将 32 位 int 压缩为 UTF-8 字节,除非这是唯一的方法。

unicode objective-c nsstring ios

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

'-[__NSArrayM _fastCStringContents:]: 无法识别的选择器发送到实例

当我尝试将对象添加到可变数组时,我不断收到无法识别的选择器,当在表视图中选择单元格时,我尝试向可变数组添加和删除项目,这是我的代码:

@interface SomeViewController
  @property (nonatomic, strong) NSMutableArray *selectedItems;
@end
Run Code Online (Sandbox Code Playgroud)

查看已加载:

-(void)viewDidLoad {

    [super viewDidLoad];

    self.selectedItems = [[NSMutableArray alloc] init];
}
Run Code Online (Sandbox Code Playgroud)

选择单元格:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    MyCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

    [self.selectedItems addObject:[NSString stringWithFormat:@"%@", cell.contactID]];
Run Code Online (Sandbox Code Playgroud)

MyCell 文件上的联系人 ID 属性为:

@property (strong, nonatomic) NSString *contactID;
Run Code Online (Sandbox Code Playgroud)

我不断收到此错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM _fastCStringContents:]: unrecognized selector sent to instance 0x7fc3dd1091b0'
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview nsstring nsarray ios

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

-UTF8String 返回 NULL 的 NSString 示例是什么?

我看到崩溃报告,从中我可以推断 -UTF8String 返回 NULL,但我没有找到任何这样做的字符串。任何人都可以提供一个字符串示例,至少对于某些大于或等于 9.0 的操作系统版本,对于 -UTF8String 返回 NULL?这对于单元测试等来说会很好。

utf-8 nsstring ios

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

如何使用格式本地化 NSString

如何使用格式本地化 NSString。

int value = 20;

NSString *str = @"hello";   

textLabel.text = [NSString stringWithFormat:@"%d %@", value, str];
Run Code Online (Sandbox Code Playgroud)

我试过

textLabel.text = [NSString stringWithFormat:NSLocalizedString(@"%d %@", @"%d %@"), value, str];
Run Code Online (Sandbox Code Playgroud)

但没有用。任何帮助表示赞赏。

objective-c string-formatting nsstring nslocalizedstring

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

如何从完整字符串 iOS swift 中找到字符串的多个 NSRange

let fullString = "Hello world, there are \(string(07)) continents and \(string(195)) countries."
let range = [NSMakeRange(24,2), NSMakeRange(40,3)]
Run Code Online (Sandbox Code Playgroud)

需要找到整个完整字符串中数字的 NSRange,并且两个数字有可能相同。目前如上所示进行硬编码,消息可以是动态的,而硬编码值将出现问题。

我已经分割了字符串并尝试获取,NSRange因为可能存在相同的值。比如 stringOne 和 stringTwo。

func findNSMakeRange(initialString:String, fromString: String) {
        let fullStringRange = fromString.startIndex..<fromString.endIndex
        fromString.enumerateSubstrings(in: fullStringRange, options: NSString.EnumerationOptions.byWords) { (substring, substringRange, enclosingRange, stop) -> () in
            let start = distance(fromString.startIndex, substringRange.startIndex)
            let length = distance(substringRange.startIndex, substringRange.endIndex)
            let range = NSMakeRange(start, length)

            if (substring == initialString) {
                print(substring, range)
            }
        })
    }
Run Code Online (Sandbox Code Playgroud)

收到类似错误Cannot invoke distance with an argument list of …

nsstring nsrange swift

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

Swift:获取字符串中单词的开始和结束字符的索引

一个字符串:

"jim@domain.com, bill@domain.com, chad@domain.com, tom@domain.com"

通过手势识别器,我能够获得用户点击的字符(很高兴提供代码,但此时看不到相关性)。

比方说,拍了拍用户o"chad@domain.com"和性格index39

鉴于39indexo,我想获得的字符串开始索引c哪里"chad@domain.com"开始和结束indexm"com"哪里"chad@domain.com"结束。

换句话说,给定indexcharacter一个String,我需要得到indexleftright我们在遇到空间权前String左侧和comma右侧。

尝试过,但这仅提供字符串中的最后一个单词:

if let range = text.range(of: " ", options: .backwards) {
  let suffix = String(text.suffix(from: range.upperBound)) 
  print(suffix) // tom@domain.com
}
Run Code Online (Sandbox Code Playgroud)

我不知道从这里去哪里?

xcode nsstring ios swift

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

NSPredicate 按单词匹配字符串

我有一个字符串数组,如下所示:

["Milk","Milkshake","Milk Shake","MilkCream","Milk-Cream"]
Run Code Online (Sandbox Code Playgroud)

如果我搜索“牛奶”,那么结果应该是["Milk","Milk Shake","Milk-Cream"]按词搜索。

谓词为

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tagName CONTAINS[c] %@",containSearchTerm];
Run Code Online (Sandbox Code Playgroud)

我从上面的数组中得到所有结果。如何使用单词进行匹配?

objective-c nsstring nspredicate ios swift

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

NSString sizeWithFont的文档:forWidth:lineBreakMode:方法(在iPhone SDK中)?

我找不到NSString sizeWithFont:forWidth:lineBreakMode:方法的文档(参见Kevin Ballard对iPhone SDK开发人员的NSString类参考中的" 调整UILabel(在iPhone SDK中)以适应? " 的答案)文档.我应该在哪里看?

更新:我没有订阅iPhone OS Library文档集,所以我的搜索不起作用.

iphone-sdk-documentation nsstring ios

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