小编bor*_*oon的帖子

如何检查UITextField何时更改?

我试图检查文本字段何时更改,相当于textView使用的函数 - textViewDidChange到目前为止我已经这样做了:

  func textFieldDidBeginEditing(textField: UITextField) {
        if self.status.text == "" && self.username.text == "" {
            self.topRightButton.enabled = false
        } else {   
            self.topRightButton.enabled = true
        }
    }
Run Code Online (Sandbox Code Playgroud)

哪种工作,但topRightButton只要按下文本字段就启用,我希望只有在实际输入文本时才能启用它?

uitextfield ios swift

265
推荐指数
10
解决办法
22万
查看次数

Xcode 8 APS环境权利不会设置为生产

我有推送通知在我的应用程序上工作.
我去提交一个新的应用程序更新,我遇到一个错误,没有设置APS环境.
我遇到了修复问题,它创建了将APS环境设置为开发的权利文件.

要提交应用程序,我显然希望将此设置投入生产.我将值更改为生产并继续归档应用程序以进行提交.
它在推送通知的功能部分中引发错误,其中最后一个"将推送通知权利添加到您的权利文件"为红色.

因此,当我遇到修复问题时,它会将APS环境的值更改为开发.
我遇到了检查配置文件并查找APS环境属性的建议.
我完成了归档过程并选择了"上传到App Store".

当我最终到达摘要时,我点击了附加到二进制文件和权利的配置文件.
我在文本编辑器中打开配置文件,并查找APS环境属性.
我确实找到了该属性,并在配置文件中设置为生产.
我决定尝试另一个建议,即重新创建分发配置文件.
我确实做了一个新的解决方案也不起作用.

据我所知,APS环境属性基于您的配置文件中的值.

任何帮助,将不胜感激.谢谢.

xcode apple-push-notifications ios

39
推荐指数
3
解决办法
3万
查看次数

iOS增加了TableViewCell中UIButton的触摸区域

我有一个UIButton在我UITableViewCell

我做了一个UIButton覆盖pointInside函数的子类:

var touchMargin:CGFloat = 20.0

override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
    let extendedArea = CGRectInset(self.bounds, -touchMargin, -touchMargin)
    return CGRectContainsPoint(extendedArea, point)
}
Run Code Online (Sandbox Code Playgroud)

但是,触摸区域不会增加.
如果我稍稍触摸一下,我会触摸桌面单元格UIButton.

由于Button被放置在单元格中,此代码是否不起作用?
我该怎么办?

uibutton uitableview ios swift

14
推荐指数
2
解决办法
3276
查看次数

验证UITextField中的电子邮件地址

我想在包含电子邮件地址的文本字段中进行验证.
在字符串"emailRegEx"中添加什么来限制用户在电子邮件地址中插入三个点或者我必须在方法中写入相同的内容.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string. 
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

- (BOOL)EmailValidationL:(NSString *)email
{
    NSString *emailRegEx =@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
    @"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
    @"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
    @"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
    @"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
    @"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
    @"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";

    NSPredicate *regExPredicate =
    [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
    a= [regExPredicate evaluateWithObject:email];
    return a;
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c email-validation ios swift

11
推荐指数
5
解决办法
2万
查看次数

具有内部函数和属性的Swift公共协议

我想知道什么是最好的做法,当我想要一些功能公开,一些内部使用协议时我.

我写的AudioManager斯威夫特3包装AVPlayer作为一个框架.

我想要一些方法是公共的,所以例如使用AudioManager的ViewController可以访问一些方法,但是一些方法不会暴露在框架之外
- >即使用访问修饰符internal而不是public.

我正在用协议驱动设计编写框架,几乎每个部分都应该有一个协议.
因此协议正在与框架内的协议进行通信.
例如,主类 - AudioManager有一个AudioPlayer,并且应该能够internal在其上调用一些函数,
例如,pause(reason:)但该方法应该internal在框架之外暴露.

这是一个例子.

internal enum PauseReason {
    case byUser
    case routeChange
}

// Compilation error: `Public protocol cannot refine an internal protocol`
public protocol AudioPlayerProtocol: InternalAudioPlayerProtocol { 
   func pause() // I want 
}

internal protocol InternalAudioPlayerProtocol {
    func pause(reason: PauseReason) // Should only be accessible within the framework
}

public class AudioPlayer: …
Run Code Online (Sandbox Code Playgroud)

access-modifiers ios swift swift-protocols swift3

11
推荐指数
1
解决办法
5730
查看次数

Alamofire 4和JSON中的特殊字符

我对Alamofire 4
的特殊字符有疑问.JSON 包含æ,ø和å,浏览器显示它们很好,也是我之前使用SwiftyJSON的解决方案.

Alamofire 4显示了这样的东西:

U00e6
Run Code Online (Sandbox Code Playgroud)

使用此电话:

Alamofire.request(specificURL, method: .get, parameters: param, encoding: URLEncoding.default, headers: nil).responseJSON { (response: DataResponse<Any>) in
    print(response)
}
Run Code Online (Sandbox Code Playgroud)

该怎么做才能解决这个问题?

json ios swift alamofire

10
推荐指数
1
解决办法
3646
查看次数

如何使用app密码访问bitbucket

我已经创建了一个应用程序的密码作为解释这里

但是现在,如何使用此应用密码访问存储库?
什么是网址?
有人可以指导我到一个显示示例的页面吗?

以下是github的代码.我如何为bitbucket做到这一点?

var githubToken = "[token]";
var url = "https://github.com/[username]/[repository]/archive/[sha1|tag].zip";
var path = @"[local path]";


using (var client = new System.Net.Http.HttpClient())
{
    var credentials = string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}:", githubToken);
    credentials = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(credentials));
    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", credentials);
    var contents = client.GetByteArrayAsync(url).Result;
    System.IO.File.WriteAllBytes(path, contents);
}
Run Code Online (Sandbox Code Playgroud)

bitbucket

10
推荐指数
5
解决办法
6925
查看次数

Swift 3 - 投掷函数类型的转换无效

我是新手,
我不明白为什么即使做了do catch治疗也会出现这个错误.

我正在阅读类似的问题,到目前为止,他们都没有解决这个错误:
Invalid conversion from throwing function type '(_) throws -> (). to non-throwing function type '([BeaconModel]) -> ()'在线 BeaconModel.fetchBeaconsFromRestApi(completionHandler: { .....

带有错误的代码段:

do{

    let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
    let db = try Connection("\(path)/db.sqlite3")

    let beaconsTbl = Table("beacons")
    let id = Expression<Int64>("id")
    let uuid = Expression<String>("uuid")
    let major = Expression<String>("major")
    let minor = Expression<String>("minor")

    try db.run(beaconsTbl.create { t in
        t.column(id, primaryKey: true)
        t.column(uuid)
        t.column(major)
        t.column(minor)
    })

    BeaconModel.fetchBeaconsFromRestApi(completionHandler: {
        beacons in
        for item in beacons{ …
Run Code Online (Sandbox Code Playgroud)

ios swift

9
推荐指数
1
解决办法
5168
查看次数

将Jpeg改为渐进式Jpeg图像

我想从基线Jpeg图像转换为渐进式Jpeg图像.
我的磁盘中存储了10,000张图像.
我尝试了一个网站,但它正在改变一个网站.http://www.imgonline.com.ua/eng/compress-image.php 但是我想要批量转换它们.

有没有在线工具或一些编程技巧?
然后,让我知道.

谢谢.

jpeg image progressive-download progressive

9
推荐指数
1
解决办法
6137
查看次数

为什么hibernate-java8(hibernate 5.x)jar被弃用?

Hibernate 5及以上版本通过jar"hibernate-java8"支持Java8 DateTime Api.
但是MavenRepository显示了一条消息Deprecated - 使用hibernate-core代替)和hibernate-java8 jar的标题.

为什么hibernate-java8 jar被称为弃用,即使它需要获得对java8的hibernate支持?

maven repository hibernate-java8

deprecated java-8 hibernate-5.x

8
推荐指数
1
解决办法
5058
查看次数