小编Mik*_*lah的帖子

将文件路径从NSString转换为NSURL

我正在顺利地完成Cocoa,但这个问题看起来很基本,它取消了我学到的所有很酷的东西.:/

我有一个生成的文件路径,它需要是NSURL格式.从研究来看,这是我写的代码:

NSLog(@"Old path = %@", pathToFile);
NSURL *xmlURL = [[[NSURL alloc] init] fileURLWithPath:pathToFile];
NSLog(@"New path = %@", [xmlURL absoluteString]);
Run Code Online (Sandbox Code Playgroud)

并输出:

2010-01-27 15:39:22.105 MusicLibraryStats[28574:a0f] Old path = file://localhost/Users/[username]/Music/iTunes/iTunes%20Music%20Library.xml
2010-01-27 15:39:22.105 MusicLibraryStats[28574:a0f] New path = (null)
Run Code Online (Sandbox Code Playgroud)

首先,alloc-init甚至不需要; 其他人似乎逃脱了它.在这种情况下,如果我没有alloc-init,我会在该行上收到"无法识别的选择器"错误.当然,现在我只是变老了(null).

我在哪里?

谢谢!

cocoa objective-c

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

如何从iphone中的货币代码中获取货币符号?

我从网络服务响应中获得了货币代码(例如:USD,EUR,INR).我需要显示相应货币代码的货币符号.如果货币代码是美元,我需要显示$,如果货币代码是欧元我需要显示€.我怎样才能做到这一点?请提出任何想法或示例代码来执行此操作.请帮我.提前致谢.

cocoa symbols currency

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

NSURL URLWithString:relativeToURL:剪切相对URL

我正在尝试实现一个使用RestKit的iOS应用程序.在我到目前为止看到的所有示例中,以下代码用于创建URL:

NSURL *baseURL = [NSURL URLWithString:@"https://api.service.com/v1"];
NSURL *relativeURL = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL];
Run Code Online (Sandbox Code Playgroud)

但随后[relativeURL absoluteString]会回来https://api.service.com/files/search.

所以我尝试了一些例子:

NSURL *baseURL1 = [NSURL URLWithString:@"https://api.service.com/v1/"];
NSURL *baseURL2 = [NSURL URLWithString:@"https://api.service.com/v1"];
NSURL *baseURL3 = [NSURL URLWithString:@"/v1" relativeToURL:[NSURL URLWithString:@"https://api.service.com"]];

NSURL *relativeURL1 = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL1];
NSURL *relativeURL2 = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL2];
NSURL *relativeURL3 = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL3];
NSURL *relativeURL4 = [NSURL URLWithString:@"files/search" relativeToURL:baseURL1];
NSURL *relativeURL5 = [NSURL URLWithString:@"files/search" relativeToURL:baseURL2];
NSURL *relativeURL6 = [NSURL URLWithString:@"files/search" relativeToURL:baseURL3];

NSLog(@"1: %@", [relativeURL1 absoluteString]);
NSLog(@"2: %@", [relativeURL2 absoluteString]); …
Run Code Online (Sandbox Code Playgroud)

url nsurl ios

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

NSManagedObject作为NSDictionary键?

在我的应用程序中,我NSDictionary的键应该是子类的实例NSManagedObject.

然而,问题是NSManagedObject没有实现NSCopying协议,这意味着没有Core Data对象/实例NSManagedObject可以用作字典键,即使该-[hash]方法适用于它们.

我该怎么办?

cocoa core-data nsdictionary nscopying

19
推荐指数
1
解决办法
6183
查看次数

将webview的内容设置为html字符串(cocoa)

有没有简单的方法将webview的内容设置为HTML字符串(无需加载文件)?

谢谢

cocoa objective-c webview

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

如何制作包含|的NSURL (管道人物)?

我正试图从我的iPhone应用程序访问谷歌地图的前向地理编码服务.当我尝试从一个带有管道的字符串中创建一个NSURL时,我只得到一个nil指针.

NSURL *searchURL = [NSURL URLWithString:@"http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false"];
Run Code Online (Sandbox Code Playgroud)

我没有在google api中看到任何其他方式通过管道发送边界坐标.有关如何做到这一点的任何想法?

iphone nsurl

19
推荐指数
3
解决办法
5459
查看次数

在iOS上设置初始焦距

我正在开发一个iOS应用程序,其中一项功能是扫描QR码.为此,我使用了优秀的图书馆ZBar.扫描工作正常,通常很快.但是,当您使用较小的QR码时,扫描需要更长的时间,主要是因为自动对焦需要一些时间来调整.我正在尝试并注意到可以使用以下代码锁定焦点:

AVCaptureDevice *cameraDevice = readerView.device;
if ([cameraDevice lockForConfiguration:nil]) {
     [cameraDevice setFocusMode:AVCaptureFocusModeLocked];
     [cameraDevice unlockForConfiguration];
}
Run Code Online (Sandbox Code Playgroud)

在成功扫描后使用此代码时,即将进行的扫描非常快.这让我很奇怪,在扫描一个代码之前,我能以某种方式锁定焦点吗?该应用程序将只扫描相当小的QR码,因此永远不需要专注于远处的东西.当然,我可以实现像tap一样专注的东西,但最好是我想避免这个额外的步骤.有没有办法实现这个目标?或者,在处理较小的QR码时,是否有其他方法可以加快速度?

//亚历山大

camera focus qr-code ios

18
推荐指数
2
解决办法
8519
查看次数

为单个KVC更改接收2个KVO通知

我正在使用KVC/KVO为大学项目创建自定义绑定实现(它需要自定义,因为我想做的事情超出了绑定可以做的事情,包括在iOS上运行).

我有一个'绑定控制器',它在一个对象的多个键上注册KVO通知(使用addObserver:forKeyPath:options:context :),我确实收到了通知.但是,我收到了每个更改的两个通知.我有一个解决方法的想法,但我宁愿弄清楚为什么会发生这种情况并纠正它!

有没有人有任何想法为什么会这样?我确定我一次只注册了每个通知,并且取消注册一次会导致两个通知都停止.

谢谢.

编辑:

我有一些代码请求,所以我会把它放进去.目前有点粗糙,它基本上仍然是一个概念证明,所以请耐心等待.

这是我观察的属性之一(我知道它有点奇怪,但这个类本质上暴露了NSManagedObject的某些属性作为自身的属性):

- (void)setName:(NSString *)name
{
    [self willChangeValueForKey:@"name"];
    [contact setFirstName:name];
    [self didChangeValueForKey:@"name"];
}
Run Code Online (Sandbox Code Playgroud)

这是我用来观察该属性的代码(确认只运行一次,并且只在一个地方运行):

[viewModel addObserver:self
            forKeyPath:@"name"
               options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial)
               context:viewController];
Run Code Online (Sandbox Code Playgroud)

之后的任何调用都会改变该属性,例如:

viewModel.name = @"Joe";
[viewModel setName: @"Joe"];
[viewModel setValue: @"Joe" forKey: @"name"];
Run Code Online (Sandbox Code Playgroud)

会导致该方法:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
Run Code Online (Sandbox Code Playgroud)

要被调用两次,每次使用相同的参数.

macos cocoa objective-c key-value-observing

17
推荐指数
1
解决办法
3783
查看次数

如何删除/解码URL百分比编码?

我想把url它转换成更易读的格式.例如,我有以下链接:

http://en.wikipedia.org/wiki/S%C3%A1ndor_Font
Run Code Online (Sandbox Code Playgroud)

我带走了不必要的部分,并留下了"S%C3%A1ndor_Font"作为一个NSString.有没有什么方法可以将其转换为"Sándor Font"(它实际上应该是什么),而不必键入特殊字符的每个组合并替换字符串的每个部分?

为了演示我想如何使用它,我编写了以下示例代码:

   //request is a NSURLRequest with a url of http://en.wikipedia.org/wiki/S%C3%A1ndor_Font

    NSRange range = [[request.URL absoluteString] rangeOfString:@"/wiki/"];

    NSString *substring = [[[request.URL absoluteString] substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

    //ArticleTitleLabel is a UILabel

    self.ArticleTitleLabel.text = substring;
Run Code Online (Sandbox Code Playgroud)

最后,我希望标签说"Sándor Font"没有"S%C3%A1ndor_Font".谢谢!

objective-c nsurl nsstring nsurlconnection ios

17
推荐指数
4
解决办法
3万
查看次数

如何从NSURL获取路径/目录组件?

我从NSSavePanel中检索了一个NSURL.我现在有这个NSURL,它给了我以下内容:

file://localhost/Users/brett/Documents/asdf%20asdf.json

现在,我很容易使用以下内容检索文件名:

[[[NSFileManager defaultManager] displayNameAtPath:pathAndFilename] stringByDeletingPathExtension]

这给了我正确的本地化文件名,如预期的那样: asdf%20asdf

那么,我如何获得路径,如下: file://localhost/Users/brett/Documents/

macos cocoa nsurl

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