小编Mik*_*lah的帖子

iphone sdk - 从字符串中删除除数字0-9之外的所有字符

好的,这就是计划.我从中获取数据的XML允许电话号码字段中的非数字文本(用于描述或联系人姓名等).我试图只提取数字并用它们调用tel:URL来发起呼叫.这是什么不工作:

NSCharacterSet *charset = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
NSString *number = @"(555) 555-5555 Office";
NSString *strippedNumber = [number stringByTrimmingCharactersInSet:charset];
NSString *phoneURL = [NSString stringWithFormat:@"tel:%@", strippedNumber];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneURL]];
Run Code Online (Sandbox Code Playgroud)

如果有任何明显的拼写错误,他们只是错别字.:)

iphone nsstring

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

NSIndexPath线程是否安全?

Apple的多线程文档不会NSIndexPath列为线程安全与否!作为一个不可变类,我通常认为它是线程安全的.

以前,我确信用于说明NSIndexPath实例已共享且全局唯一的文档.现在似乎已经消失了,让我怀疑iOS5/Mac OS X 10.7的设计已经修改.

我在Mac OS X 10.6(Snow Leopard)上看到了很多来自客户的崩溃报告,这些报告似乎在试图访问索引路径时崩溃.因此我想知道:实际的实例是线程安全的,但是将它们从共享缓存中拉出来的逻辑不是吗?有人有任何见解吗?

这是一个示例堆栈跟踪BTW:

Dispatch queue: com.apple.root.default-priority
0 libobjc.A.dylib 0x96513f29 _cache_getImp + 9
1 libobjc.A.dylib 0x965158f0 class_respondsToSelector + 59
2 com.apple.CoreFoundation 0x948bcb49 ___forwarding___ + 761
3 com.apple.CoreFoundation 0x948bc7d2 _CF_forwarding_prep_0 + 50
4 com.apple.Foundation 0x994b10c5 -[NSIndexPath compare:] + 93
5 com.apple.Foundation 0x99415686 _NSCompareObject + 76
6 com.apple.CoreFoundation 0x948af61c __CFSimpleMergeSort + 236
7 com.apple.CoreFoundation 0x948af576 __CFSimpleMergeSort + 70
8 com.apple.CoreFoundation 0x948af38c CFSortIndexes + 252
9 com.apple.CoreFoundation 0x948fe80d CFMergeSortArray + 125 …
Run Code Online (Sandbox Code Playgroud)

cocoa multithreading core-data foundation nsindexpath

16
推荐指数
1
解决办法
915
查看次数

在iPhone上使用NSXMLParser解析html实体

我想我读过与这个问题有关的每一个网页,但我仍然无法找到解决方案,所以我在这里.

我有一个不受我控制的HTML网页,我需要从我的iPhone应用程序解析它.这是我正在谈论的网页示例:

<HTML>
  <HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  </HEAD>
  <BODY>
    <LI class="bye bye" rel="hello 1">
      <H5 class="onlytext">
        <A name="morning_part">morning</A>
      </H5>
      <DIV class="mydiv">
        <SPAN class="myclass">something about you</SPAN> 
        <SPAN class="anotherclass">
          <A href="http://www.google.it">Bye Bye &egrave; un saluto</A>
        </SPAN>
      </DIV>
    </LI>
  </BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

我正在使用NSXMLParser,它一直顺利,直到找到èhtml实体.它调用foundCharacters:for"Bye Bye",然后调用resolveExternalEntityName:systemID ::,其实体名称为"egrave".在这个方法中,我只是返回在NSData中转换的字符"è",再次调用foundCharacters将字符串"è"添加到前一个"Bye Bye",然后解析器引发NSXMLParserUndeclaredEntityError错误.

我没有DTD,我无法更改我正在解析的html文件.你对这个问题有什么想法吗?罗伯,先谢谢你们所有人.

更新(12/03/2010).在Griffo的建议之后我得到了这样的结论:

data = [self replaceHtmlEntities:data];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
Run Code Online (Sandbox Code Playgroud)

其中replaceHtmlEntities:(NSData*)是这样的:

- (NSData *)replaceHtmlEntities:(NSData *)data {

    NSString *htmlCode = [[NSString alloc] initWithData:data …
Run Code Online (Sandbox Code Playgroud)

iphone parsing html-entities nsxmlparser

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

如何从NSURL中删除文件://

我有一个NSURL.
它是file://localhost/Users/Me/File.xml

我想要一个NSUtring,它是/Users/Me/File.xml

我可以使用一些很好的功能吗?

cocoa path nsurl

13
推荐指数
1
解决办法
5224
查看次数

如何在NSAttributedString中定义段落?

我看到有一个属性name(NSParagraphStyleAttributeName)用于将段落样式应用于Cocoa中的文本.文本存储在一个NSAttributedString,但是在该字符串中定义"段落"的内容 - 它是换行符\n吗?其他人物?如果它是a \n,那么如何在不启动新段落的情况下创建新行.最后,当您将ParagraphStyle附加到字符串时,是否必须使用整个段落的确切范围,或者可以将其放在段落中的任何子范围内.如果它可以是子范围,系统如何处理同一段落上的两个或多个ParagraphStyles?

谢谢,罗布

macos cocoa nstextview nsattributedstring

13
推荐指数
1
解决办法
9407
查看次数

无论系统浏览器设置为何,都可以使用Safari打开URL

在我的objective-c程序中,无论系统的默认浏览器是什么,我都需要在Safari中打开一个URL.这意味着这不起作用,因为它可以启动Firefox或其他任何浏览器:

NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURL: url];
Run Code Online (Sandbox Code Playgroud)

我想我很接近这个:

[ws launchAppWithBundleIdentifier: @"com.apple.Safari"
                          options: NSWorkspaceLaunchWithoutActivation
   additionalEventParamDescriptor: NULL
                 launchIdentifier: nil];
Run Code Online (Sandbox Code Playgroud)

只需要弄清楚如何传递URL作为参数......有更简单的方法吗?

谢谢!

更新:以下代码使用我想要的URL启动Safari,但Safari立即终止!任何想法为什么会这样?

NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURLs: urls withAppBundleIdentifier:@"com.apple.Safari" 
     options: NSWorkspaceLaunchDefault
additionalEventParamDescriptor: NULL
launchIdentifiers: NULL];
Run Code Online (Sandbox Code Playgroud)

我观察到了同样的行为LSOpenFromURLSpec.如果Safari实例正在运行,它可以正常工作.如果没有运行Safari实例,它将启动一个新实例并立即终止它.

更新2: Safari仅在嵌入了Flash的网站崩溃.根据上面的代码,我可以很好地打开google.com,例如,Safari会崩溃为YouTube视频.

safari nsworkspace launch-services

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

在NSURLConnection中恢复下载功能

我正在从NSURLConnection类的服务器下载一些非常大的数据.

如何实现暂停功能以便我可以继续下载?

iphone nsurlconnection nsurlrequest

10
推荐指数
1
解决办法
3885
查看次数

timeout stringwithcontentsofurl

我有这个对stringwithcontentsofurl的调用:

[NSString stringWithContentsOfURL:url usedEncoding:nil  error:nil];
Run Code Online (Sandbox Code Playgroud)

我怎么能给出一个简单的超时?我不想使用线程或操作队列(url的内容大约是100个字符),我只是不想在连接缓慢时等待太久.

nsstring

10
推荐指数
2
解决办法
6184
查看次数

Object-c/iOS:如何使用ASynchronous从URL获取数据?

我的朋友看到​​了我的代码,其中一部分是从URL获取plist数据

他告诉我不要使用Synchronous,使用ASynchronous

但我不知道如何以简单的方式进行异步

这是我在程序中使用的代码

NSURL *theURL =  [[NSURL alloc]initWithString:@"http://someurllink.php" ];
NSURLRequest *theRequest=[NSURLRequest requestWithURL:theURL
                                          cachePolicy:NSURLRequestUseProtocolCachePolicy
                                          timeoutInterval:60.0];
NSData *returnData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:nil]; 
NSString *listFile = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];   
self.plist = [listFile propertyList];
[self.tableView reloadData];
[listFile autorelease];
Run Code Online (Sandbox Code Playgroud)

如何更改我的代码使用ASynchronous来获取数据?

非常感谢所有回复和答案:)

asynchronous nsurlconnection ios

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

如何使用UIWebView加载包含散列片段"#"的NSURL?

给出一个像index.html这样的本地URL地址

现在我需要用UIWebView它来加载iPad.我按照以下步骤操作:

  1. 创建NSURL

    NSURL *url = [NSURL fileURLWithPath:@"http://mysite.com#page1"];
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用UIWebView加载本地HTML/JS/CSS等

    [webView loadRequest:[NSURLRequest requestWithURL:url]];
    
    Run Code Online (Sandbox Code Playgroud)

但是它不起作用,因为"#"被转换为"%23",所以URL字符串是

http://mysite.com%23page1

我的问题是,如何解决这个自动转换问题,并让UIWebView访问包含哈希片段"#"的URL?

nsurl

10
推荐指数
2
解决办法
6753
查看次数