小编Rya*_*ski的帖子

Swift显示警报最佳实践

我的应用程序中有各种控制器都需要验证,当验证失败时,我想显示带有错误的警报.这样做有一些最佳实践/设计模式吗?我可以简单地在Helper类中创建一个静态函数,如下所示:

static func displayAlert(message: String, buttonTitle: String, vc: UIViewController)
{
    let alertController = UIAlertController(title: "", message: message, preferredStyle: .Alert)

    let OKAction = UIAlertAction(title: buttonTitle, style: .Default, handler: nil)
    alertController.addAction(OKAction)

    vc.presentViewController(alertController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

但后来我需要传递视图控制器..这似乎是不好的做法.我可以拍摄通知并观察它,但这似乎有点矫枉过正.我是否在思考这个问题,还是有更多可接受的方法来处理这样的事情?

xcode ios uialertcontroller

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

UITableView中UISearchController的背景颜色

我有一个SearchController的搜索栏以编程方式插入到UITableView的tableHeaderView中.当我拉起来查看搜索栏或刷新表格时,我会看到这个奇怪的深灰色,你可以在下面的图片中看到,在复习活动指示器和搜索栏之间(即使我删除了复习器,这种背景颜色仍然存在)视图):

在此输入图像描述

tableView.tableHeaderView = searchController.searchBar
Run Code Online (Sandbox Code Playgroud)

我试过用我能想到的各种方式改变这种背景颜色:

tableView.backgroundColor = UIColor.redColor()
tableView.tableHeaderView!.backgroundColor = UIColor.redColor()
searchController.searchBar.backgroundColor = UIColor.redColor()
view.backgroundColor = UIColor.redColor()
Run Code Online (Sandbox Code Playgroud)

什么都行不通.这个深灰色不是我在项目中使用的自定义颜色之一,所以我知道我没有手动设置它.一旦我拿出searchController,一切都像以前一样工作:深灰色被其他地方看到的浅灰色所取代.

uitableview ios swift uisearchcontroller

20
推荐指数
3
解决办法
9347
查看次数

iOS - Swift - 返回异步检索值的函数

所以我有一个来自Parse的PFFile对象,我正在尝试创建一个函数来检索该PFFile的UIImage表示并返回它.就像是:

func imageFromFile(file: PFFile) -> UIImage? {
    var image: UIImage?

    file.getDataInBackgroundWithBlock() { (data: NSData?, error: NSError?) -> Void in
        if error != nil {
            image = UIImage(data: data!)
        }
    }

    return image
}
Run Code Online (Sandbox Code Playgroud)

但是,这里的问题很明显.因为getDataInBackroundWithBlock函数是异步的,所以我每次都会得到nil.有没有办法等到在返回图像变量之前检索到UIImage?我不知道在这种情况下使用同步getData()是否是一种有效的方法.

asynchronous ios parse-platform swift

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

Xcode 6 - Swift - 带导航的自定义标签栏

我正在尝试使用Swift/XCode 6.2在标签栏中创建带有导航元素的选项卡式应用程序,如下图(红色条)所示.基本上,中间的这三个图标将引导用户到不同的视图控制器.其他两个图标将基于上下文.例如,在表格视图页面上,您将看到菜单图标并添加新图标,如图所示.但是,单击一行会将菜单图标更改为后退图标,将添加图标更改为其他内容.

这是一般的想法,但我很难实现甚至接近这个的东西.第一个问题是每当我在一个标签栏控制器中嵌入一个视图时,我都无法将标签栏移动到顶部.但是,当我在视图控制器中创建自定义UITabView时,按住Control并单击并将标签栏项目拖动到另一个视图不会创建segue.我甚至没有开始解决在栏内导航元素的问题.

我想我要问的只是为了解决这个问题的路线.我假设我不能使用标签栏控制器或导航控制器,因为它似乎我不能自定义它们.那么自定义标签栏和导航栏,然后以编程方式实现segue和按钮更改?

谢谢.

带导航的标签栏

xcode ios swift

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

Laravel不使用https作为资产和动态路由

我已经更改了我的APP_URL = https://example.com,我已将其添加到我的AppServiceProvider的启动方法中:

/** Enable HTTPS */
if(env('REDIRECT_HTTPS')) {
    $url->forceSchema('https');
}
Run Code Online (Sandbox Code Playgroud)

我跑了php artisan cache:clear,php artisan view:clear然后php artisan config:clear.我仍然无法获得使用https的资产和动态路由.刚收到错误:

混合内容:" https://example.com/ " 页面是通过HTTPS加载的,但请求了一个不安全的样式表" http://example.com/css/app.css ".此请求已被阻止; 内容必须通过HTTPS提供.

我知道我可以使用secure_asset而不asset应该工作,但我需要这是动态的,因为我仍然需要在另一个域上提供网站的http版本.

php https http laravel

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

使用 mongodb 的 Flask/uWSGI/nginx 应用程序超时

我在 uWSGI/nginx 上有一个 Flask python Web 应用程序,工作正常,除了当我使用 时pymongo,特别是当我初始化 MongoClient 类时。当我尝试使用 pymongo 访问应用程序时,出现以下 nginx 错误:

\n\n
\n

019/02/19 21:58:13 [错误] 16699#0: *5 recv() 失败 (104: 连接被对等方重置) 从上游读取响应头,客户端:127.0.0.1,服务器:example.com,请求:“GET /api/test HTTP/1.1”,上游:“uwsgi://unix:/var/www/html/myapp/myapp.sock:\xe2\x80\x9d,主机:\xe2\x80\x9cexample .com\xe2\x80\x9d

\n
\n\n

我的小测试应用程序:

\n\n
from flask import Flask\nfrom flask_cors import CORS\nfrom bson.json_util import dumps\nimport pymongo\n\nDEBUG = True\napp = Flask(__name__)\napp.config.from_object(__name__)\nCORS(app)\n\nclient = pymongo.MongoClient() # This line\ndb = client.myapp\n\n@app.route(\'/api/test\')\ndef test():\n    item = db.items.find_one()\n    return item[\'name\']\n\ndef create_app(app_name=\'MYAPP\'):\n    return app\n\n# if __name__ == \'__main__\':\n#   app.run(debug=True, threaded=True, host=\'0.0.0.0\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我从命令行 ( python app.py) 运行这个应用程序,它可以正常访问 …

python nginx flask uwsgi raspberry-pi

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

iOS Autolayout 视图高度基于较大的子视图高度

所以我在界面构建器中有一个视图,我希望它的高度基于它内部两个子视图的较大(高度)。但是,这只会在加载视图并通过 viewDidLoad 填充内容时确定。

在此处输入图片说明

所以现在我有基于灰色文本(“S”)的视图底部布局。在应用程序中的大多数情况下,灰色文本将足够长以换行多行,然后视图高度就可以了。但是,在这种情况下,图像的高度大于文本。界面构建器中是否有任何方法可以将自动布局约束设置为相对于两者中较大的一个(实际上,更准确地说,相对于具有最大 maxY 帧位置的元素)?

interface-builder ios autolayout swift

5
推荐指数
1
解决办法
1180
查看次数

带节点的Vue-cli

我对同时使用Vue和节点有点困惑.您可以通过键入在本地运行Vue-cli应用程序npm run dev并在一个端口上运行,然后我还创建了一个带有一些路由的快速服务器文件,并在另一个端口上运行.一切都很好......

但是,当它只是客户端代码时,为什么Vue-cli必须像运行服务器一样"运行"?这是否意味着在生产中我真的必须同时占用一个应用程序的两个端口?

node.js express vue.js axios

5
推荐指数
1
解决办法
1617
查看次数

Vue 动态布局两次安装路由器视图组件

我将我的 Vue 项目设置为使用动态布局 - 即,从页面到页面持续存在的布局,假设新页面的布局与最后一页的布局相同。我的问题是,当我转到具有不同布局的路线时,路由器链接组件会被创建和销毁,然后再次创建,这给我带来了一些问题。我的设置如下:

应用程序

<template>
  <component :is="layout">
    <router-view :layout.sync="layout" />
  </component>
</template>

<script>
import LayoutPortal from '@/layouts/LayoutPortal';
import LayoutOffline from '@/layouts/LayoutOffline';
import LayoutDefault from '@/layouts/LayoutDefault';

export default {
  name: 'App',

  components: {
    LayoutPortal,
    LayoutOffline,
    LayoutDefault,
  },
...
Run Code Online (Sandbox Code Playgroud)

一些路由器视图组件

<template>
...
</template>

<script>
import LayoutDefault from '@/layouts/LayoutDefault';

export default {
    ...

    created() {
        this.$emit('update:layout', LayoutDefault);
    },
}
</script>
Run Code Online (Sandbox Code Playgroud)

布局默认

<template>
  <div class="wrapper">
    <slot />
  </div>
</template>

<script>
export default {
  name: 'layout-default',
};
</script>
Run Code Online (Sandbox Code Playgroud)

tldr;

如果您使用动态布局设置您的项目,并遵循在线教程中的任何一个,当您导航到与上一页布局不同的路由时,新的路由器视图组件将被创建、销毁,然后再次创建。这会导致诸如mounted() 调用加倍等问题。

javascript layout vue.js vue-router vue-component

5
推荐指数
1
解决办法
2353
查看次数

/oauth/token Passport 端点的 Laravel 速率限制节流阀

我试图oauth/token在 Laravel 5.8 中禁用 Passport 内置端点的速率限制,我认为只需从 api 中删除油门中间件就可以做到:

'api' => [
    // 'throttle:60,1',
    'bindings',
],
Run Code Online (Sandbox Code Playgroud)

但是,尽管这有效地禁用了我在 api 路由文件中定义的每个端点的速率限制,但它并没有这样做/oauth/token,就好像 Passport 有默认的节流设置一样。所以我只是AppServiceProvider用一个荒谬的数字添加了该路由的油门中间件:

\Route::group(['middleware' => ['custom_provider', 'throttle:999999999,1']], function () {
    Passport::routes();
});
Run Code Online (Sandbox Code Playgroud)

但是当我测试这个时,由于某种原因,在几次请求后我仍然收到 429 错误:

429 Too Many Requests

X-RateLimit-Limit ?9999999999
X-RateLimit-Remaining ?9999999935
x-ratelimit-reset ?1567108098
Run Code Online (Sandbox Code Playgroud)

所以我宁愿完全禁用它。任何想法如何专门为 Passport 路线禁用它?

php rate-limiting laravel http-status-code-429

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

iOS - 注销功能

我有一个注销按钮,我需要重置应用程序.看起来非常标准但我没有看到关于如何做这样的事情的很多信息.到目前为止,我已经设法删除了代表当前用户的NSUserDefaults对象,我使用FBSDKLoginManager().logOut()的是用户通过Facebook登录,然后我将根视图控制器重置为其初始视图控制器:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window = UIWindow(frame: UIScreen.mainScreen().bounds)
var storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootViewController = HomeViewController()

appDelegate.window!.rootViewController = rootViewController
appDelegate.window!.makeKeyAndVisible()
Run Code Online (Sandbox Code Playgroud)

但是,我不确定是否还有其他事可做.我看到一个答案说你需要遍历所有windows子视图并删除它们,但是当你更改rootViewController时这仍然是必要的吗?还有什么我想念的吗?此外,截至目前,当您单击注销时,主屏幕才会出现.有没有办法让根视图控制器更改动画?

logout uiviewcontroller ios segue swift

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

Ruby on Rails - 不使用资源路径的路径变量

我有一个控制器,让我们称之为FruitsController,它抓住所有水果并将其发送到索引视图.在视图中,我想显示这些水果的各个页面的链接.我正在使用以下格式:

<% @fruits.each do |fruit| %>
    <%= link_to fruit.name, fruit_path(fruit) %>       
<% end %>
Run Code Online (Sandbox Code Playgroud)

当我有路线时resources :fruits,这很有效,但我不想删除,保存和更新路由,所以我不想使用resources.但是当我只是单独显示所有和单个水果的路线时,我得到错误,没有定义fruit_path函数,当我使用fruits_path它时,它可以工作,但它只是在路径上添加一个句点,如/fruits.1.如何在不使用资源的情况下使用fruit_path函数?谢谢.

ruby routes ruby-on-rails path hyperlink

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

iOS - Swift中的密码加密

我需要在Swift中加密密码并将其发送到我的Web服务器以存储在数据库中.任何最佳做法?我见过,AESCrypt.encrypt(userPassword, password: API_AUTH_PASSWORD)但我不确定这是否足够(盐渍等).此外,在服务器本身,我将如何比较哈希密码进行登录身份验证?我正在使用PHP.基本上我在问Swift中是否有一个普遍接受的加密方法来在基于PHP的Web服务器上散列和检查密码.

php encryption passwords ios swift

0
推荐指数
1
解决办法
3056
查看次数