我有一个NSData实例,我从之前的应用程序运行中存储.我想使用这些数据设置NSTextView的文本.它是RTF,我无法弄清楚如何做到这一点.任何想法或建议?它需要使用代码而不是Interface Builder.
谢谢
我正在使用[NSData dataWithContentsOfURL:]创建两个NSData实例,我想比较这些实例来衡量它们的不同之处.由于它们都来自同一个网站,因此使用字符串查找不同的内容将有助于我突出显示已经(已)更改的实际元素.是否可以将此数据更改为字符串以查找差异?
我正在尝试编码和解码base64数据.但是在解码base64数据时,它会返回一组十六进制值,但我无法使用NSlog显示或打印输出到原始可读字符串.下面的代码无法打印任何内容,只是空的.
有人可以帮忙吗?谢谢>>
NSString* msgEncoded = [[NSString alloc] initWithFormat:@"Q1NNKE1DTC9TTUEgUkNWL2FkbWluQHNldGVjcy5jb20gT1JHLyBUVkIvNDNkYzNlMzQwYWQ3Yzkp:"];
NSData* decoded = [[NSData alloc] initWithData:[self decodeBase64WithString:msgEncoded]];
NSString* plainString = [[NSString alloc]initWithData:decoded encoding:NSUTF8StringEncoding];
NSLog(@"\n Decoded string: %@ \n", plainString );
Run Code Online (Sandbox Code Playgroud) 我有一个NSString "[{"van" : 1,312, "vuan":12,123}]并且为了获得每个键的这个值,我这样做:
NSData *data1 = [jsonResponse1 dataUsingEncoding:NSUTF8StringEncoding];
jsonArray = [NSJSONSerialization JSONObjectWithData:data1 options:kNilOptions error:&err];
self.van = [NSMutableArray arrayWithCapacity:1];
self.vuan = [NSMutableArray arrayWithCapacity:1];
for (NSDictionary *json in jsonArray) {
NSString * value = [json objectForKey:@"van"];
[self.van addObject:value];
lbl1.text = value;
NSString * value1 = [json objectForKey:@"vuan"];
[self.vuan addObject:value1];
lbl4.text = value1;
}
Run Code Online (Sandbox Code Playgroud)
可能是我不必使用数组而是NSData直接转换为NSDictionary.
反正,我不明白为什么jsonArray是nil,尽管jsonResponse1包括我上面写的值.
编辑:我的老板写错了json字符串.谢谢大家的建议!:)
我有一个NSString,有十六进制信息,如
<00000020 66747970 4d344120 00000000 4d344120 6d703432 69736f6d 00000000 00031203
Run Code Online (Sandbox Code Playgroud)
它来自NSData.我需要做的是将Hex数据的NSString转换为Ascii,它将是:
[0][0][0] ftypM4A [0][0][0][0]M4A mp42isom[0][0][0][0][0][3][18][3]
Run Code Online (Sandbox Code Playgroud)
您可能会知道这是一个M4A文件.我使用NSFileHandle将文件的第一部分加载到NSData.然后我将它存储到NSString中:
NSData *data = [filehandle readDataOfLength:1000];
NSString *str = [[NSString alloc]initWithString:[NSString stringWithFormat:@"%@",data]];
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何直接转换NSData或将NSString转换为ascii?谢谢!
我试图写一些从这样的NSMutableArray生成的数据
// set up keychain so I can write to it… or read if needed (specially for testing)
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" accessGroup:nil];
[keychain setObject:(__bridge id)(kSecAttrAccessibleWhenUnlocked) forKey:(__bridge id)(kSecAttrAccessible)];
//write to keychain
NSData *parsedRemoteSitesData = [NSKeyedArchiver archivedDataWithRootObject:parsedRemoteSitesMutableArray]; // converts MutableArray to NSData
[keychain setObject:parsedRemoteSitesData forKey:(__bridge id)(kSecValueData)]; pass data to keychain
Run Code Online (Sandbox Code Playgroud)
我的应用程序崩溃在那里我试图将NSData传递给钥匙串的最后一行,这是它给出的错误.
** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMutableData dataUsingEncoding:]: unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)
我认为这意味着我没有编码我的NSData,同时将数组传递给它,但我不确定..我希望有人可以告诉我或提供一些示例代码来解决这个问题.
任何帮助将不胜感激.
当我阅读该部分时
NSDataReadingOptions
Options for methods used to read NSData objects.
enum {
NSDataReadingMappedIfSafe = 1UL << 0,
NSDataReadingUncached = 1UL << 1,
NSDataReadingMappedAlways = 1UL << 3,
};
typedef NSUInteger NSDataReadingOptions;
Run Code Online (Sandbox Code Playgroud)
它说
NSDataReadingUncached一个提示,指示该文件不应存储在文件系统缓存中.对于一次读取和丢弃的数据,此选项可以提高性能.适用于OS X v10.6及更高版本.在NSData.h中声明.
所以我假设默认情况下这些URL请求被缓存,如果我想使用共享全局缓存,则不需要实现NSURLRequest来缓存数据?这种理解是否正确?
在Objective-C中,代码看起来很喜欢这个,
NSInteger random = arc4random_uniform(99) + 1
NSData *data = [NSData dataWithBytes:& random length: sizeof(random)];
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在Swift中这样做时,
let random:NSInteger = NSInteger(arc4random_uniform(99) + 1) //(1-100)
let data = NSData(bytes: &random, length: 3)
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误,坚持"NSInteger不能转换为@lvalue in $ T1
任何帮助将不胜感激!
我需要准确计算CRC-8-Dallas/Maxim.有人可以提供算法吗?
任何帮助表示赞赏!
我一直在使用XCode和Swift创建一个应用程序以连接到蓝牙设备(已连接LED色带),并且编写了一段代码来使其变色。
使用蓝牙嗅探器,我知道我需要发送“ 52130056FF000000AA”的值,在此示例中,它将使其变为红色。这是我已经编写的代码的一部分。Characteristicx在此代码之前定义。
let data: NSData = "52130056FF000000AA".dataUsingEncoding(NSUTF8StringEncoding)!
peripheral.writeValue(data, forCharacteristic: characteristicx, type: CBCharacteristicWriteType.WithoutResponse)
Run Code Online (Sandbox Code Playgroud)
这段代码将转换为此给出的十六进制字符串,我不想发送该字符串。'<35323133 30303536 46463030 30303030 4141>'
所以,问题是,如何让Swift将52130056FF000000AA仅发送到BLE设备,而不发送到转换后的字符串?这里的问题是writeValue命令需要NSData(据我所知),我不确定如何使用纯十六进制字符串作为以NSData形式发送的数据。
希望有人可以帮忙!任何帮助甚至建议,将不胜感激。
nsdata ×10
ios ×7
objective-c ×4
nsstring ×2
swift ×2
xcode ×2
bluetooth ×1
crc ×1
hex ×1
json ×1
keychain ×1
macos ×1
nsfilehandle ×1
nstextview ×1