所以,迁移我的代码让Swift 3我有点卡住了.现在似乎NSBatchDeleteRequest需要iOS 10吗?我可以进行代码构建的唯一方法是使用以下代码段:
func removeAllChargerData(){
// Remove all charging data from persistent storage
let fetchRequest: NSFetchRequest<NSFetchRequestResult> = ChargerPrimary.fetchRequest()
let entity = NSEntityDescription.entity(forEntityName: "ChargerPrimary", in: self.secondMoc)
fetchRequest.entity = entity
let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest)
do {
try self.secondMoc.execute(deleteRequest)
} catch {
let deleteError = error as NSError
NSLog("\(deleteError), \(deleteError.localizedDescription)")
}
}
Run Code Online (Sandbox Code Playgroud)
但是,会显示一条警告,指示fetchRequest()仅在iOS 10更新和更新时可用.如果我定义fetchRequest以下方式,我得到一个错误,因为它期望fetchRequestto有一个NSFetchRequestResult参数类型:
let fetchRequest = NSFetchRequest<ChargerPrimary>(entityName: "ChargerPrimary")
Run Code Online (Sandbox Code Playgroud) 我正在处理接收通知和设置应用程序徽章的应用程序.
问题是当应用程序处于后台状态或终止时,徽章计数不会增加.
它保持不变.
当app处于前台时,方法调用和徽章数量增加.
我已经从服务器端做了那件事,
但我想知道有什么方法可以在应用程序处于后台时执行或者因为增加应用程序徽章号而终止?
我已经告诉过你我做过这件事
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 9
}
}
Run Code Online (Sandbox Code Playgroud)
从服务器端,但我想要的是:我不想从服务器有效负载收到该徽章数,但我想增加我身边的徽章数.
我的逻辑是这样的,当我收到第一个通知时,我在didReceiveNotification中保存了userdeafualts中的计数,当我第二次通知时,我添加了+1计数,当app在前台时,我直接将该徽章计数更改为0在userdefaults中但是这个方法无法工作背景或应用程序终止
所以我想知道是否有任何方法在背景或应用程序中执行,因此我可以增加BADGE COUNT
如果有人知道请帮助我从我这边做.
我正在使用擦除图像的功能,我的代码如下所示.你可以在这里看到 视频.这 current_sticker_img是我的Imageview
注意: 我也使用Pan Gesture缩放图像
//MARK: Eraser touch event
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if btn_eraser.isSelected == true || btn_repaint.isSelected == true{
let touch : UITouch = touches.first!
lastpoint = touch.location(in: current_sticker_img)
}
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
if btn_eraser.isSelected == true || btn_repaint.isSelected == true{
let touch = touches.first!
let currentPoint : CGPoint = touch.location(in: current_sticker_img)
let isPointInsideView = current_sticker_img.point(inside: currentPoint, with: event)
if …Run Code Online (Sandbox Code Playgroud) 我正在使用oAuth2.0从我的Gmail帐户中读取电子邮件.这是我的代码
oauthswift = OAuth2Swift(
consumerKey: "242468529977-xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
consumerSecret: "GfGVl_xxxxxxxxxxmjnAX",
authorizeUrl: "https://accounts.google.com/o/oauth2/auth",
accessTokenUrl: "https://accounts.google.com/o/oauth2/token",
responseType: "code"
)
oauthswift?.allowMissingStateCheck = true
let _ = oauthswift?.authorize(
withCallbackURL: URL(string: "urn:ietf:wg:oauth:2.0:oob")!, scope: "https://www.googleapis.com/auth/gmail.metadata", state: "",
success: { credential, response, parameters in
let parameters = Dictionary<String, AnyObject>()
// Multi-part upload
print(credential)
print(response)
},
failure: { error in
print("ERROR: \(error.localizedDescription)")
}
)
Run Code Online (Sandbox Code Playgroud)
但在我允许后,它会向我显示此屏幕
并说'请复制此代码并切换到应用程序并将其粘贴到那里.' 但我不知道在哪里粘贴代码.
我正在开发一个录制视频的应用程序.录制结束后,我使用图书馆将GIF图像放在上面 .
我的代码用于播放视频和将gif图像作为叠加层
self.avPlayer = [AVPlayer playerWithURL:self.urlstring];
self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;
AVPlayerLayer *videoLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer];
videoLayer.frame = self.preview_view.bounds;
videoLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.preview_view.layer addSublayer:videoLayer];
NSURL *url = [[NSBundle mainBundle] URLForResource:@"02" withExtension:@"gif"];
self.img_gif.image = [UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url]];
Run Code Online (Sandbox Code Playgroud)
但现在我想合并并保存带有此GIF图像叠加的视频.我谷歌它没找到我想要的东西.
谢谢您的帮助
我正在使用QBImagePickerController一次选择多个图像.
所以,这是我的整个代码
我提出imagepickerController这个代码
let imagePickerController = QBImagePickerController()
imagePickerController.delegate = self
imagePickerController.allowsMultipleSelection = true
imagePickerController.mediaType = .Image
self.presentViewController(imagePickerController, animated:
true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
所以当我选择多个图像并单击完成时,此方法调用
func qb_imagePickerController(imagePickerController: QBImagePickerController!, didFinishPickingAssets assets: [AnyObject]!) {
for asset in assets {
print(asset.fileName)
}
self.dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
例如,我选择一个图像,然后像这样打印
<PHAsset: 0x7fc55d954500> 6006CE57-81FE-4DC0-8C52-5DB43CE7638D/L0/001 mediaType=1/0, sourceType=1, (1920x1080), creationDate=2016-05-26 09:15:34 +0000, location=0, hidden=0, favorite=0
Run Code Online (Sandbox Code Playgroud)
从这个我怎样才能获得图像并将其设置为collectionview?
我从中获取fileName但是不值得从中设置图像.
我使用filePathURL,fileURL,absoluteURL但没有发生任何事情它崩溃了
所以请帮帮我吧
谢谢
有一个要求,例如向所有视图控制器添加一个imageview,但我有150多个xib,将imageview放入每个单独的xib中非常耗时。
有通用的方法吗?我用谷歌搜索,但没有发现有用的信息。
任何帮助,将不胜感激。
我正在使用电子邮件验证到我的项目中,方法如下所示
//MARK: isValidEmailID
func isValidEmail(testStr:String) -> Bool {
print("validate emilId: \(testStr)")
let emailRegEx = "^(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?(?:(?:(?:[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+(?:\\.[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+)*)|(?:\"(?:(?:(?:(?: )*(?:(?:[!#-Z^-~]|\\[|\\])|(?:\\\\(?:\\t|[ -~]))))+(?: )*)|(?: )+)\"))(?:@)(?:(?:(?:[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)(?:\\.[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)*)|(?:\\[(?:(?:(?:(?:(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))\\.){3}(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))))|(?:(?:(?: )*[!-Z^-~])*(?: )*)|(?:[Vv][0-9A-Fa-f]+\\.[-A-Za-z0-9._~!$&'()*+,;=:]+))\\])))(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?$"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
let result = emailTest.evaluateWithObject(testStr)
return result
}
Run Code Online (Sandbox Code Playgroud)
要么
func isValidEmailID(email: String) -> Bool {
let regExPattern: String = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
let emailValidator: NSPredicate = NSPredicate(format: "SELF MATCHES %@", regExPattern)
let isValid: Bool = emailValidator.evaluateWithObject(email)
return isValid
}
Run Code Online (Sandbox Code Playgroud)
当我输入"modijecky@gmail.com"或任何其他错误输入时,这两个正则表达式都正常工作,但当我输入"modijecky@gmail.com.com"时它将无效.
所以,我发现"name @ .com.com"是一个有效的电子邮件地址,还有更多像这样的子域名.所以现在我希望用户不要进入子域.是否有任何REGEX可以在一个域内验证电子邮件地址,例如"name@gmail.com",而不是多个域或子域.
我也从谷歌尝试不同的正则表达并将其实施到项目中,但同样的问题发生.
请帮帮我. …