我使用和下载了.plist文件,并且我想读取 .plist 文件的值。SwiftAlamofire
if let url = URL(string: urlString) {
Alamofire.download(url).responseData(completionHandler: { response in
if response.result.isSuccess {
if let plistData = response.result.value {
if let plistXml = String(data: data, encoding: .utf8) {
// plistXml contains the actual plist contents as String object.
}
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
我必须包含我下载的 .plist 文件的对象:
使用这些对象中的任何一个,我想将 plist 文件转换为 NSDictionary 或 Dictionary。
我正在加载一个文本文件,编码未知,因为它来自其他来源。内容本身来自 macOS NSDocument 的read方法,该方法被输入到我的模型的 read 中。String构造函数在使用 Data 时需要编码,如果您假设不正确,您可能会得到null。我已经创建了潜在编码的条件级联(这就是其他人似乎正在做的事情),必须有更好的方法来做到这一点。建议?
override func read(from data: Data, ofType typeName: String) throws {
model.read(from: data, ofType: typeName)
}
Run Code Online (Sandbox Code Playgroud)
在模型中:
func read(from data: Data, ofType typeName: String) {
if let text = String(data: data, encoding: .utf8) {
content = text
} else if let text = String(data: data, encoding: .macOSRoman) {
content = text
} else if let text = String(data: data, …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码来获取一些图像,这些图像将进入tableview.但需要很长时间(5-6秒)才能获得30张图像.
有更聪明/更快的方法吗?
NSString *imageUrl = ......;
NSString *urlStr =
[imageUrl UrlstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *path = [[NSString alloc] initWithFormat:@"http://xxx.dk/xml.aspx%@", urlStr];
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
return img;
[..... release];
Run Code Online (Sandbox Code Playgroud) 如何将NULL char(\ 000)编码为NSData?我无法理解如何做到这一点.我最终希望这是我构建的更大数据字符串的一部分,但我无法弄清楚如何将其引入.
我有以下api方法返回NSData.我在另一个视图控制器中调用了此方法.如何将NSData转换为NSInteger?
-(NSData *)getBusXMLAtStop:(NSString*)stopnumber
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString: [NSString stringWithFormat:@"http://www.google.com/ig/api?weather=,,,50500000,30500000",stopnumber]]];
[request setHTTPMethod: @"GET"];
dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(@"%@",dataReply);
return dataReply;
}
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
api *ap = [[api alloc]init];
NSData *str = [ap getBusXMLAtStop:@"1"];
// Here is where I want to convert str into NSInteger type. How is this possible?
NSLog(@"this is success %@",ap.dataReply);
TWeatherParser *parser = [[TWeatherParser alloc]init];
[parser getInitialiseWithData:ap.dataReply];
[parser release];
[ap release];
}
Run Code Online (Sandbox Code Playgroud) 我有一个NSData,我正在从filePath加载.然后数据被传递,我需要filePath来获取数据的来源.
除了将filePath作为额外参数传递之外,最简单的方法是什么?
如何检查NSString是否包含if语句中的base64数据?因为base64以完全随机的方式对数据进行编码,所以我无法在NSString中搜索短语,因此我需要检查字符串的内容是否会导致数据文件.
我收到警告::不兼容的指针类型在下面的代码中从'NSData'分配给'NSMutableData'
-(void) connectionDidFinishLoading:(NSURLConnection *) connection
{
NSLog(@"DONE. Received Bytes: %d", [webData length]);
NSString *theXML = [[[NSString alloc] initWithBytes: [webData mutableBytes] length [webData length] encoding:NSUTF8StringEncoding] autorelease];
theXML = [theXML stringByReplacingOccurrencesOfString:@"<" withString:@"<"];
theXML = [theXML stringByReplacingOccurrencesOfString:@">" withString:@">"];
NSLog(@"%@",theXML);
if( xmlParser )
{
xmlParser = nil;
[xmlParser release];
}
NSMutableString *str = [[NSMutableString alloc]initWithString:theXML];
webData = [str dataUsingEncoding:NSUTF16StringEncoding];//WARNING
xmlParser = [[[NSXMLParser alloc] initWithData:webData] autorelease];
[xmlParser setDelegate:self];
[xmlParser setShouldResolveExternalEntities: YES];
[xmlParser parse];
[connection release];
}
Run Code Online (Sandbox Code Playgroud) 如果存在具有相同名称的文件,objective-c中重命名文件的最佳方法是什么.
理想情况下,如果名为untitled.png的文件已存在,我想将untitled.png命名为untitled-1.png.
我已将下面的解决方案作为答案包含在内,但我认为应该有更好的方法(内置函数)来完成它.
我的解决方案不是线程安全的,并且易受竞争条件的影响.
我收到了这个错误
使用未声明的标识符'new'
在这行代码上
Byte* decompressedBytes = new Byte[COMPRESSION_BLOCK];
Run Code Online (Sandbox Code Playgroud)
这是我的方法,这行代码出现在.
// Returns the decompressed version if the zlib compressed input data or nil if there was an error
+ (NSData*) dataByDecompressingData:(NSData*)data{
Byte* bytes = (Byte*)[data bytes];
NSInteger len = [data length];
NSMutableData *decompressedData = [[NSMutableData alloc] initWithCapacity:COMPRESSION_BLOCK];
Byte* decompressedBytes = new Byte[COMPRESSION_BLOCK];
z_stream stream;
int err;
stream.zalloc = (alloc_func)0;
stream.zfree = (free_func)0;
stream.opaque = (voidpf)0;
stream.next_in = bytes;
err = inflateInit(&stream);
CHECK_ERR(err, @"inflateInit");
while (true) {
stream.avail_in = len - stream.total_in; …Run Code Online (Sandbox Code Playgroud)