11月 06

swift 2 网络登录成功后 状态保持

网络部分使用Alamofire。
登录成功后将登录状态保存在NSUserDefaults中。网络部分,如session等信息均由Alamofire处理保存。
处理流程如下:
1)首先建立一个plist文件。key为login,布尔型,默认值为False
loginstatus

2)定义保存状态的变量
//全局网络保持配置。初始化参数为False
var netDefault=NSUserDefaults.standardUserDefaults()

3)登录如果登录成功,则记录登录状态
netDefault.setBool(true, forKey: “login”)

4)退出app,再次加载后先判断,如果已经登录,则跳转到默认页,如果没有登录则条转到登录页。
此处判断要在故事版加载完成后再进行判断。“toDfaultPage”为Storyboard Segue中identified的跳转值。
//故事版加载后处理
override func viewDidAppear(animated: Bool) {
self.mvHomeView()
}

func mvHomeView() {
if netDefault.objectForKey(“login”)?.boolValue == true{
self.performSegueWithIdentifier(“toDefaultPage”, sender: self)
}
}

11月 02

tornado 做 api 返回 json 编码处理

使用tornado做API服务器,返回数据为json,编码使用utf-8。但是在客户端显示为utf-8的编码,而不是中文。
效果如下:
测试内如
“测试”
直接打印的编码返回
‘\xe6\xb5\x8b\xe8\xaf\x95′
decode utf-8后的编码返回
u’\u6d4b\u8bd5’

为了终端调试方便,最好是打印中文。
data为组织成dict格式的数据,然后用json模块导入。如下处理后可以正常显示。
json_data = json.dumps(data, ensure_ascii=False)