我想解码一个UT8编码的字符串.
输入字符串是" øÃ| -test-2.txt "
解码后应该变成" øæ-test-2.txt "
我发现许多API将NSString或NSData编码为UT8(NSUTF8StringEncoding),但无法找到解码方法.
我到现在为止尝试过的: -
NSString *str = [[NSString alloc] initWithUTF8String:[strToDecode cStringUsingEncoding:NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)
和
[strToDecode stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
Run Code Online (Sandbox Code Playgroud)
和
[NSString stringWithUTF8String:[strToDecode cStringUsingEncoding:[NSString defaultCStringEncoding]]]
Run Code Online (Sandbox Code Playgroud)
我尝试了相同的输入字符串,并在第三方解码器中获得正确的输出.
但是无法取得成功
任何正确方向的提示都将受到高度赞赏.
我有一个数组作为类中的属性.
Class Custom {
let objArray: [CustomClass]
}
Run Code Online (Sandbox Code Playgroud)
我想在一个范围内删除objArray中的一些项目.所以我在下面做了
let newVar = objArray[1...3]
Run Code Online (Sandbox Code Playgroud)
新对象被正确删除但返回值在newVar中,因为数组是值类型,我怎么能使原始反映相同.
当索引递增时,下面的代码会使Index超出范围
for i in 1...3 {
objArray.remove(at: 1)
}
Run Code Online (Sandbox Code Playgroud)
======
上述问题的最佳方法是什么?
任何正确方向的提示都将受到高度赞赏.
创建了一个SingleViewApplication,我已经放置了一个按钮.
现在点击按钮我需要将tableView显示为popover.TableViewController是在xib中创建的.
问题是tableViewController.popoverPresentationController总是如下所示,参见下面的代码
let filterVC = TableViewController(nibName: "TableViewController", bundle: nil)
var filterDistanceViewController = UINavigationController(rootViewController: filterVC)
filterDistanceViewController.preferredContentSize = CGSize(width: 300, height: 200)
let popoverPresentationViewController = filterDistanceViewController.popoverPresentationController
popoverPresentationViewController?.permittedArrowDirections = .any
if let pop = filterDistanceViewController.popoverPresentationController {
pop.delegate = self
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码filterDistanceViewController.popoverPresentationController总是为零
任何正确方向的提示都将受到高度赞赏.
我有mainString,我需要在找到关键字后获取字符串的一部分.
NSString*mainString ="你好,你好GET = dsjghdsghghdsjkghdjkhsg";
现在我需要在关键字"GET ="之后获取字符串.
等待回复.
我的服务器中有一个文件夹结构,我需要在设备端浏览该文件夹.我收到XML格式的文件夹结构.我的查询是: - 1)我可以在我的iPhone应用程序的文档文件夹中创建相同的文件夹结构.
2)最好的方法是在设备文档文件夹中创建文件夹,还是只读取XML并在解析它时显示文件夹(我的意思是不创建文件夹).
等待你的回复
我想创建一个具有Tab栏的应用程序.在每个TabBar中,我想使用两个视图,即左侧的表视图和另一侧的详细视图.但是TableView应该保持纵向和横向(就像在iPad中设置应用程序一样).
我已经看到了使用私有API的一些建议,这是一种使用风险.
[splitViewController setHidesMasterViewInPortrait:NO];
Run Code Online (Sandbox Code Playgroud)
以及Matt Legend的https://github.com/mattgemmell/MGSplitViewController等教程, 但我不需要那么多的自定义.
任何正确方向的提示或教程都将受到高度赞赏.
似乎在4.2中打破了以下教程: -
http://blog.blackwhale.at/2010/04/your-first-ipad-split-view-application/
我想快速传递一个通用模型对象。
目前我有一个必须返回 Model 对象的闭包,如下所示
completionHandler = ([ModelObject]?, Error?) -> Void
Run Code Online (Sandbox Code Playgroud)
方法调用
func method1( onCompletion: @escaping completionHandler) -> Void {
}
Run Code Online (Sandbox Code Playgroud)
我想制作一个通用的完成处理程序,可以传递不同的模型而不是特定的模型。注意:-所有模型对象都符合 Codable 协议,如下所示
struct ModelObject: Codable {
}
Run Code Online (Sandbox Code Playgroud)
//=====编辑======
func method1<M: Codable>( onCompletion: @escaping (M?, Error?) -> Void) -> Void {
let decoder = JSONDecoder()
let items = try? decoder.decode(ModelObject.self, from: data)
onCompletion(items, nil)// error in this line Cannot convert value of type 'ModelObject?' to expected argument type '_?'
}
Run Code Online (Sandbox Code Playgroud)