我的json数据有json字符串(值),看起来像这样
{
"Label" : "NY Home1",
"Value" : "{\"state\":\"NY\",\"city\":\"NY\",\"postalCode\":\"22002\",\"value\":\"Fifth Avenue1\nNY NY 22002\nUSA\",\"iosIdentifier\":\"71395A78-604F-47BE-BC3C-7F932263D397\",\"street\":\"Fifth Avenue1\",\"country\":\"USA\"}",
}
Run Code Online (Sandbox Code Playgroud)
我使用swiftyjson获取jsonString
let value = sub["Value"].string ?? ""
Run Code Online (Sandbox Code Playgroud)
之后,我将此jsonString转换为Dictionary,使用下面的代码,但它始终显示此错误消息 The data couldn’t be read because it isn’t in the correct format
if let data = value.data(using: String.Encoding.utf8) {
do {
let a = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
print("check \(a)")
} catch {
print("ERROR \(error.localizedDescription)")
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是因为"\n",如何将jsonstring转换为具有"\n"的字典?
数据模型
class dataImage {
var userId: String
var value: Double
var photo: UIImage?
var croppedPhoto: UIImage?
init(userId:String, value: Double, photo: UIImage?, croppedPhoto: UIImage?){
self.userId = userId
self.value = value
self.photo = photo
self.photo = croppedPhoto
}
}
Run Code Online (Sandbox Code Playgroud)
查看控制器
var photos = [DKAsset]() //image source
var datas = [dataImage]()
var counter = 0
for asset in photos{
asset.fetchOriginalImageWithCompleteBlock({ image, info in // move image from photos to datas
let images = image
let data1 = dataImage(userId: "img\(counter+1)", value: 1.0, photo: images, …Run Code Online (Sandbox Code Playgroud) 在联系人应用程序中,有像"iCloud","yahoo","gmail"这样的组.在swift中,是否可以仅从gmail源获取联系人?
在swift 2中我使用CNLabeledValue.localizedStringForLabel(phoneNumber.label)并且工作正常.
在swift 3中,我尝试了这一行,CNLabeledValue.localizedString(forLabel: phoneNumber.label!)但是遇到了generic parameter 'ValueType' could not be inferred错误
如何在swift3中获取CNLabeledValue的localizedstring?
我将步进器的出口和操作放入表格视图单元格中,并使用协议委托将其连接到表格视图。当我点击第一行中的步进器时,步进器值在第一行中正常显示,但它也出现在某个随机行中。如何解决这个问题?
表格视图单元格
protocol ReviewCellDelegate{
func stepperButton(sender: ReviewTableViewCell)
}
class ReviewTableViewCell: UITableViewCell {
@IBOutlet weak var countStepper: UIStepper!
@IBOutlet weak var stepperLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
@IBAction func stepperButtonTapped(sender: UIStepper) {
if delegate != nil {
delegate?.stepperButton(self)
stepperLabel.text = "x \(Int(countStepper.value))"
}
}
Run Code Online (Sandbox Code Playgroud)
视图控制器
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = …Run Code Online (Sandbox Code Playgroud) 我尝试将coreData迁移到新版本,我正在执行以下步骤:
如果您已将应用程序提交到使用早期型号版本的App Store,请在进行任何更改之前添加新的模型版本(选择name.xcdatamodeld,然后选择Editor-> Add model Version).
然后,从Core Data选项卡添加新文件,作为映射模型选择,源模型(提交的应用程序正在使用的模型版本)目标模型(您已完成更改的模型版本)
但我的数据主要是图像和应用程序崩溃,因为它需要大量的内存.所以我想删除旧数据模型及其数据,并在用户更新应用程序时创建空的新模型数据.这该怎么做?
我一直收到这个错误
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'路径中似乎没有有效的已编译故事板'/var/containers/Bundle/Application/43F5F727-9B69-404E-A320-22AE93547B73/vContacts.app/ Base.lproj/Main.storyboardc"
当我在iOS 10的设备中使用以下行时.它在iOS 9中运行良好
let mainST = UIStoryboard(name: "Main", bundle: nil)
Run Code Online (Sandbox Code Playgroud)
我已经将目标家庭设备设置为1/2(iPhone和iPad)并清理项目但仍然出现此错误.怎么解决?
现在我构建了一个提供同步联系人的应用程序.为此,每次应用程序回到前台时,我会检查所有联系人(CNContact)并与应用程序核心数据中的联系人进行比较,并检测是否存在任何不同的联系人并合并数据.它工作正常,但需要大量的内存.
有没有办法检测联系人应用程序中的任何联系人是否已更改而不比较所有联系人?
在app委托中我放了一些函数,我希望启动画面等到appdelegate完成其功能.现在,我的应用程序立即运行初始视图控制器func和app委托func.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let email = NSUserDefaults.standardUserDefaults().stringForKey("userEmail")
if let email = email {
reLogin()
}else{
buildNavigationDrawer()
}// I want this execute first and run the initial view controller's after
return true
}
Run Code Online (Sandbox Code Playgroud)
这该怎么做?或者这是关闭初始视图控制器的方法?
当我使用 alamofire 时,我不断收到“error_type”:“OAuthException”,“code”:“41”,甚至当我通过服务器获得数据时,我在标题授权之前。我认为它不断发送相同的标头,如何确保 alamofire 发送当前标头?
let headers = ["Authorization" : "\(AccessToken) \(TokenType)"]
print(headers)
Alamofire.request(.GET, "url/profile/", headers: headers, encoding: .JSON).responseJSON { response in
switch response.result {}
Run Code Online (Sandbox Code Playgroud)
编辑 首先,我使用登录 API
let parameters = [
"client_id": "\(Constant.clientId)",
"client_secret": "\(Constant.clientSecret)",
"response_type": "\(Constant.responseType)",
"scope" : "\(Constant.scope)",
"redirect_uri": "\(Constant.redirect)",
"email": "\(email!)",
"password": "\(pass!)"
]
print(parameters)
Alamofire.request(.POST, "http://url/login/", parameters: parameters, encoding: .JSON).responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
print("JSON: \(json)")
let accessToken = json["access_token"].string!
let …Run Code Online (Sandbox Code Playgroud) 如何在不禁用func的情况下禁用tableview上的高亮显示?我试过这些,现在我不能去另一页.
func tableView(tableView: UITableView, shouldHighlightRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return false
}
Run Code Online (Sandbox Code Playgroud) ios ×12
swift ×12
swift3 ×6
cncontact ×4
uitableview ×2
alamofire ×1
appdelegate ×1
arrays ×1
contacts ×1
core-data ×1
datamodel ×1
ios10 ×1
json ×1
nsdictionary ×1
tableview ×1
uistepper ×1
uistoryboard ×1
xcode ×1