我有一些协议
LoginStrategy
public protocol LoginStrategy {
func login(_ viewController: UIViewController)
func getUserInfo(withCompletionHandler completionHandler: @escaping (_ userInfo: [String: Any]?) -> ())
func createLoginButton(_ frame: CGRect, withCompletionHandler completionHandler: @escaping (_ loginButton: UIView) -> ())
func getUserId() -> String
}
Run Code Online (Sandbox Code Playgroud)
和两个类:
LoginProvider
public class LoginProvider {
public let strategy: LoginStrategy
public func login(_ viewController: UIViewController) {
return self.strategy.login(viewController)
}
public func getUserInfo(withCompletionHandler completionHandler: @escaping (_ userInfo: [String: Any]?) -> ()) {
return self.strategy.getUserInfo(withCompletionHandler: completionHandler)
}
public func createLoginButton(_ frame: CGRect, withCompletionHandler completionHandler: @escaping …Run Code Online (Sandbox Code Playgroud) 我想在Xcode中调试时检查特定执行点的XML文件的内容.是否可以通过管理器(我使用实际的硬件设备而不是模拟器进行调试)或在输出/控制台中输入某种命令来查看文件的内容?
我正在使用Xcode 4.
我已经在我的应用程序中向我的服务器发出了请求.并发布类似这样的数据.服务器端正在等待所有参数,即使它们是零.但我无法将nil值添加到字典中.
var postDict = Dictionary<String,AnyObject>
postDict[pass]=123
postDict[name]="ali"
postDict[surname]=nil // dictionary still has only pass and name variables.
Run Code Online (Sandbox Code Playgroud)
有没有办法将nil值添加到字典?
我正在尝试找到解决方案,以简单处理iOS设备上只读消耗远程JSON数据的所有必要步骤.这意味着获取远程JSON数据,存储到iOS设备上的本地缓存以供脱机使用,刷新缓存,解析JSON数据.我认为现在所有移动应用都是非常普遍的要求.
我知道可以手动下载远程JSON文件,将其存储到iOS设备上的本地数据库或文件中,当网络不可用时从本地存储中获取它,否则从网上下载.我现在手动完成.:)但是希望通过使用框架/库可以做的许多步骤,不是吗?
所以我尝试了几乎所有我需要的HanekeSwift框架,但它只缓存远程JSON(和图像),但不刷新缓存!这对我没用.我也知道存在Alamofire和SwiftyJSON,但我对它们没有任何经验.
你有任何经验如何做到这一点?
摘要

我对Swift中有关var的使用和关键字{get set}的协议有疑问.
来自Apple文档:
如果协议要求属性可获取和可设置,则不能通过常量存储属性或只读计算属性来满足该属性要求.如果协议只要求属性可以获取,那么任何类型的属性都可以满足要求,如果这对您自己的代码有用,则该属性也可以设置.
属性要求始终声明为变量属性,前缀为var关键字.Gettable和settable属性通过在类型声明后写入{get set}来指示,并且通过编写{get}来指示gettable属性.
我无法理解为什么我不能使用let.只有get的协议中的var不只是一个let?
像这样的东西:
protocol someProtocol
{
var someProperty: String { get }
}
Run Code Online (Sandbox Code Playgroud)
它不会只是:
protocol someProtocol
{
let someProperty: String
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我有一些HTML数据,其中包含标题,段落,图像和列表标签.
有没有办法在一个UITextView或中显示这些数据UILabel?
属性的这种Transformable数据类型.到底有什么好处呢?有好的例子吗?
我想玩这个.所以经过一段时间的搜索,我发现了这个:NSValueTransformer.似乎是我需要的东西.
那我怎么开始这个呢?例如,如果我想存储一个UIColor对象,我会为它制作一个变换器吗?
究竟是什么东西改变了这种东西?一个NSData?我传递给变压器的物体必须遵循任何协议吗?
CGPoint offset = [_table contentOffset];
[_table reloadData];
[_table setContentOffset:offset animated:NO]; //unuseful
// __block UITableView *tableBlock = _table;
// [self performBlock:^(id sender) {
// [tableBlock setContentOffset:offset];
// } afterDelay:2];
Run Code Online (Sandbox Code Playgroud)
我知道不知道任何被调用的委托方法reloadData.使用afterDelay:2哪种黑客可能太短或太长,所以我该如何实现呢?
将以下int参数转换为字符串,而不使用任何本机toString功能.
Run Code Online (Sandbox Code Playgroud)public string integerToString(int integerPassedIn){ //Your code here }
既然一切都继承自Object并且Object有一个ToString()方法,你如何int在string不使用本机ToString()方法的情况下将a 转换为a ?
字符串连接的问题在于它会调用ToString()链直到它击中一个或命中Object该类.
如何在不使用C#的情况下将整数转换为字符串ToString()?
我用XCode 7.1创建了一个简单的游乐场,我输入了这个简单的代码:
import UIKit
import XCPlayground
var str = "Hello, playground"
let color = UIColor (red: 1 , green: 1 , blue: 0 , alpha: 0 )
let view = UIView()
view.backgroundColor = UIColo (colorLiteralRed: 1 , green: 0 , blue: 0 , alpha: 0 )
view.frame = CGRect (x: 0 ,y: 0 ,width: 100 ,height: 100 )
let label = UILabel (frame: CGRect (x: 5 , y: 5 , width: 50 , height: 20 ))
label.text = str
view.addSubview(label) …Run Code Online (Sandbox Code Playgroud) ios ×8
swift ×6
xcode ×2
alamofire ×1
algorithm ×1
c# ×1
caching ×1
core-data ×1
debugging ×1
dictionary ×1
frameworks ×1
html ×1
http ×1
initializer ×1
int ×1
logging ×1
null ×1
optional ×1
protocols ×1
reloaddata ×1
string ×1
uikit ×1
uitableview ×1
uitextview ×1
xcode4 ×1