小编Jit*_*odi的帖子

仅适用于iOS 10的Swift 3中的NSBatchDeleteRequest?

所以,迁移我的代码让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)

xcode ios swift

15
推荐指数
1
解决办法
2203
查看次数

从客户端增加徽章数量而不是从有效负载接收计数增加

我正在处理接收通知和设置应用程序徽章的应用程序.
问题是当应用程序处于后台状态或终止时,徽章计数不会增加.
它保持不变.

当app处于前台时,方法调用和徽章数量增加.
我已经从服务器端做了那件事,

但我想知道有什么方法可以在应用程序处于后台时执行或者因为增加应用程序徽章号而终止?

我已经告诉过你我做过这件事

{
    "aps" : {
        "alert" : "You got your emails.",
        "badge" : 9
    }
}
Run Code Online (Sandbox Code Playgroud)

从服务器端,但我想要的是:我不想从服务器有效负载收到该徽章数,但我想增加我身边的徽章数.

我的逻辑是这样的,当我收到第一个通知时,我在didReceiveNotification中保存了userdeafualts中的计数,当我第二次通知时,我添加了+1计数,当app在前台时,我直接将该徽章计数更改为0在userdefaults中但是这个方法无法工作背景或应用程序终止

所以我想知道是否有任何方法在背景或应用程序中执行,因此我可以增加BADGE COUNT

如果有人知道请帮助我从我这边做.

iphone objective-c push-notification ios swift

7
推荐指数
1
解决办法
1324
查看次数

擦除时图像变得模糊并缩小

我正在使用擦除图像的功能,我的代码如下所示.你可以在这里看到 视频.这 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)

erase cgpoint ios uigraphicscontext swift3

6
推荐指数
0
解决办法
321
查看次数

请复制代码,切换到应用程序并将其粘贴到那里但在哪里?

我正在使用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)

但在我允许后,它会向我显示此屏幕

在此输入图像描述

并说'请复制此代码并切换到应用程序并将其粘贴到那里.' 但我不知道在哪里粘贴代码.

email-attachments ios oauth-2.0 swift gmail-api

6
推荐指数
1
解决办法
665
查看次数

使用GIF图像叠加保存视频

我正在开发一个录制视频的应用程序.录制结束后,我使用图书馆将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图像叠加的视频.我谷歌它没找到我想要的东西.

谢谢您的帮助

GIF图片

video-capture objective-c ios avplayerlayer

4
推荐指数
1
解决办法
1454
查看次数

可以从库的PHAsset获取图像

我正在使用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但没有发生任何事情它崩溃了

所以请帮帮我吧
谢谢

ios swift phasset

3
推荐指数
1
解决办法
4615
查看次数

以编程方式将imageview添加到所有viewcontrollers

有一个要求,例如向所有视图控制器添加一个imageview,但我有150多个xib,将imageview放入每个单独的xib中非常耗时。

有通用的方法吗?我用谷歌搜索,但没有发现有用的信息。

任何帮助,将不胜感激。

dynamic uiviewcontroller imageview ios swift

3
推荐指数
1
解决办法
104
查看次数

根据Regex,电子邮件验证错误

我正在使用电子邮件验证到我的项目中,方法如下所示

//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",而不是多个域或子域.

我也从谷歌尝试不同的正则表达并将其实施到项目中,但同样的问题发生.
请帮帮我. …

regex email-validation ios swift

2
推荐指数
1
解决办法
468
查看次数