小编Mic*_*hal的帖子

使用HTTPUrlConnection时如何保留cookie?

我已经开始使用推荐HTTPUrlConnection并离开了DefaultHTTPClient.我无法粘合在一起的一件事是使用持久性cookie存储.我想简单地将自定义cookie处理程序/管理器附加到我的连接以存储cookie.Android文档并不是非常有用,因为它包含了两行有关cookie的主题.

我以前一直在使用LoopJ PersistentCookieStore,而且效果非常好.

有关如何在Android中设置持久性cookie存储的任何想法,我可以附加到我HTTPUrlConnection自动保存和检索cookie?

谢谢

java cookies android httpurlconnection

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

如何正确地将节点与多个父节点对齐

这是截图

空间树

我一直在处理这个问题,试图修改Y的位置,没有任何运气.请注意,Meli Job B似乎未对齐.仅当父框附加到多个父项时才会发生这种情况.我尝试下面的代码来了解一个盒子是否有多个父母,但是我无法确定如何定位Y轴,因为它们都落在同一个地方.

码:

var pos = node.getPos();
var parents = node.getParents();
if(parents.length > 1) {
    var subnodes = node.getSubnodes();
    for(var i=0; i<subnodes.length; i++) {
        var yPos = subnodes[i].getPos();
        yPos.y = pos.y;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

infovis space-tree

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

我怎样才能获得best_in_place的respond_with_bip工作?

我在best_in_place完全正常运行方面遇到了麻烦.问题是,一旦我编辑了一个字段,为了能够再次点击并编辑该字段,我需要刷新页面.我可能错了,但我觉得这与respond_with_bip抛出undefined method错误有关.我认为这与不将best_in_place资产放在正确的位置有关.目前我有以下内容可以更新'常量'.但是当它击中时它再次抛出错误respond_with_bip:

节目:

<%= best_in_place constant, :description %>
Run Code Online (Sandbox Code Playgroud)

更新控制器的动作:

def update
  @constant = Constant.find(params[:id])

  respond_to do |format|
    if @constant.update_attributes(params[:constant])
      format.html { 
        flash[:success] = "Constant Updated"
        redirect_to settings_path
      }
      format.json { 
        respond_with_bip(@constant) 
      }
    else
      format.html { 
        flash[:error] = "Constant Update Failed"
        @title = "Constants"
        @constant = Constant.new
        @partial_path = "settings/constants"
        redirect_to settings_path
      }
      format.json { respond_with_bip(@constant) }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

best_in_placegithub页面的文件夹方面,我将整个lib/best_in_place文件夹放在我的应用程序的app/assets文件夹中.javascript文件在app/assets/javascripts(这些工作,所以不担心它).我把lib/assets/best_in_place.rb文件放在文件 …

ruby-on-rails-3.1 best-in-place

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

如何以编程方式更改或更新NSLayoutConstraint

我已使用代码以编程方式实现了AutoLayout:

- (void)addConstraintWithListNavigationViewController:(UIView *)listViewNavigation y:(CGFloat)y height:(CGFloat)height
{
    //WIDTH_ListTableView = 0.4

    //set x = 0;
    NSLayoutConstraint *constraintToAnimate1 = [NSLayoutConstraint constraintWithItem:listViewNavigation
                                                                            attribute:NSLayoutAttributeLeft
                                                                            relatedBy:NSLayoutRelationEqual
                                                                               toItem:self.view
                                                                            attribute:NSLayoutAttributeLeft
                                                                           multiplier:0.00
                                                                             constant:0];
    [self.view addConstraint:constraintToAnimate1];


    //set y = y;
    NSLayoutConstraint *constraintToAnimate2 = [NSLayoutConstraint constraintWithItem:listViewNavigation
                                                                            attribute:NSLayoutAttributeTop
                                                                            relatedBy:NSLayoutRelationEqual
                                                                               toItem:self.view
                                                                            attribute:NSLayoutAttributeBottom
                                                                           multiplier:0.00
                                                                             constant:y];
    [self.view addConstraint:constraintToAnimate2];








    //set Width = self.view.frame.size.width*0.4
    NSLayoutConstraint *constraintToAnimate3 = [NSLayoutConstraint constraintWithItem:listViewNavigation
                                                                            attribute:NSLayoutAttributeWidth
                                                                            relatedBy:NSLayoutRelationEqual
                                                                               toItem:self.view
                                                                            attribute:NSLayoutAttributeWidth
                                                                           multiplier:1-WIDTH_ListTableView
                                                                             constant:0.0];
    [self.view addConstraint:constraintToAnimate3];





    //Set height = height
    NSLayoutConstraint *constraintToAnimate4 = [NSLayoutConstraint constraintWithItem:listViewNavigation
                                                                            attribute:NSLayoutAttributeHeight
                                                                            relatedBy:NSLayoutRelationEqual
                                                                               toItem:nil
                                                                            attribute:NSLayoutAttributeNotAnAttribute
                                                                           multiplier:0.00
                                                                             constant:height];
    [self.view addConstraint:constraintToAnimate4];
}
Run Code Online (Sandbox Code Playgroud)

这很完美,但每次这个ViewController收到一个 …

objective-c ios nslayoutconstraint

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

RestKit性能和核心数据

只需要下载9,000个物体,RestKit的性能就会慢得令人无法接受 - 它在模拟器上花费了10分钟,在iPad Mini上花费了不确定的时间.

我有几个表,我从一个安静的界面下载.这一切都有效,但似乎存在指数尺度问题,当有许多对象时,这个问题变得无法忍受.下表遇到的问题最多:

optionMapping.identificationAttributes = @[@"optionID"];

// OptionType
RKEntityMapping *optionTypeMapping = [RKEntityMapping mappingForEntityForName:@"OptionType" inManagedObjectStore:rkMOS];
[optionTypeMapping addAttributeMappingsFromDictionary:@{
 @"id" : @"optionTypeID",
 @"option_type" : @"optionType",}];

optionTypeMapping.identificationAttributes = @[@"optionTypeID"];
Run Code Online (Sandbox Code Playgroud)

属性optionTypeID在Core Data中编制索引,不是可选的.

与其他表有一些关系,我将其映射如下:

// Option.optionType -> OptionType

[optionMapping addConnectionForRelationship:@"optionType" connectedBy: @"optionTypeID"];

// Option.unit -> Unit

[optionMapping addConnectionForRelationship:@"unit" connectedBy:@"unitID"];
Run Code Online (Sandbox Code Playgroud)

这些似乎不是问题 - 我评论了它们,下载仍然非常非常慢.

我设置了一个响应描述符(这是一个目录,所以我只需要下载它).请注意,以下代码显示了所有表的设置.

NSArray *reqA = @[@{@"endpoint" : API_VENDORS_ENDPOINT,
                    @"mapping" : vendorMapping},

                  @{@"endpoint" : API_OPTION_TYPES_ENDPOINT,
                    @"mapping" : optionTypeMapping},

                  @{@"endpoint" : API_OPTIONS_ENDPOINT,
                    @"mapping" : optionMapping},

                  @{@"endpoint" : API_UNITS_ENDPOINT,
                    @"mapping" : unitMapping},

                  @{@"endpoint" : API_PRICE_TIERS_ENDPOINT,
                    @"mapping" …
Run Code Online (Sandbox Code Playgroud)

ios restkit

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

如何从 Firebase 分析接收每日摘要电子邮件?

我想通过电子邮件接收有关我的应用下载量和来自Firebase 的其他各种统计信息的每日摘要报告。我之前使用过Fabric并且能够这样做,但现在因为 Fabric 将很快被弃用(2020 年 5 月) - 我想在 Firebase 中做同样的事情。

电子邮件的片段

Fabric 电子邮件示例

有什么解决办法吗?

android ios firebase firebase-analytics google-fabric

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

闭包与委托模式

我正在使用网络请求类,我担心崩溃.例如,在将回调方法传递给函数时,使用闭包非常简单:

// some network client
func executeHttpRequest(#callback: (success: Bool) -> Void) {
    // http request

    callback(true)
}

// View Controller
func reload() {
    networkClient.executeHttpRequest() { (success) -> Void in
        self.myLabel.text = "it succeeded" // NOTE THIS CALL
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,由于应该执行回调的进程是异步的,当回调与容器类元素(在本例中是一个UIKit类)交互时,它可能容易在类似的情况下崩溃

  1. 当异步任务仍在执行时,用户导航到另一个View Controller
  2. 用户在异步任务仍在执行时按下主页按钮
  3. 等等...

因此,当回调最终被触发时,self.myLabel.text可能会导致崩溃,因为self引用的View Controller 可能已经被释放.

到这一点.我是对的还是在内部快速实施某些内容以便永远不会发生这种情况?

如果我是正确的,那么当代理模式派上用场时,就像代理变量一样weak references,这意味着,如果取消分配,它们不会保留在内存中.

// some network client

// NOTE this variable is an OPTIONAL and it's also a WEAK REFERENCE
weak var delegate: …
Run Code Online (Sandbox Code Playgroud)

delegates closures ios swift

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

如何在Swift中取消正在进行的HTTP请求?

我的代码执行GET请求,如下所示:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
    // ...

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
        if error != nil {
            println("error = \(error)")
            return
        }

        if let HTTPresponse = response as? NSHTTPURLResponse {
            if HTTPresponse.statusCode == 200 { // Successfully got response
                var err: NSError?
                if let json = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: &err) as? [String : AnyObject] {
                    // Success decoding JSON
                } else {
                    // Failed -> stop activity indicator
                    dispatch_async(dispatch_get_main_queue(), { …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch ios nsurlsession swift

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

当外围设备消失时如何使用CoreBluetooth进行检测?

我想有一个我的iOS可以连接的ble设备列表,当ble设备出现和消失时刷新.

为了做到这一点,我创建了一个NSMutableDictionnary* peripheralsAvailable,每次- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI;都由CBCentralManager调用,我将外设添加到peripheralsAvailable dictionnary(然后更新UITableView).一切都好.

但是,如果外围设备"消失",我无法找到如何更新字典.似乎我只能在检测到它时在我的词典中添加外围设备,但是当我关闭它时我无法删除它.

你能告诉我我是否遗失了什么?

bluetooth ios core-bluetooth cbcentralmanager

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

在两个应用程序之间共享一个mongoid模型 - 使用引擎与插件

我想在我的rails应用程序之间共享2个(可能更多)之间的模型.我找不到任何明确的建议,但我找到了一些我已阅读过的问题和答案,并得出结论,必须使用"gemmed"插件引擎.我决定使用插件,因为我读到引擎只是一种"完整"的插件.

所以我使用以下方法创建了一个插件:( rails plugin new my_models --skip-active-record --skip-test-unit --dummy-path=spec/dummy选项用于跳过activerecord作为ORM并使用rspec进行测试).

创建插件后,我收到了以下文件:

my_models.gemspec  Gemfile  Gemfile.lock  lib  MIT-LICENSE  Rakefile  README.rdoc  spec
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法包含模型:

  1. 只需创建一个app/models目录并将我的模型放入其中
  2. 正如本教程中所建议的那样(我可以在devise的github中看到),我创建了一个生成器来尝试生成模型.

他们两个都失败了,然后我决定采用引擎建议(通过添加--mountable到"rails new"命令的选项列表),我得到了完整的rails应用程序结构(使用app,bin,db和其余的目录),把我的模型放在app/models目录中,它就像魔术一样!

因为我相信我是程序员而不是魔术师,所以我不会做这样的魔法,所以你能告诉我我的两个瘦插件解决方案(使用生成器/创建模型)有什么问题吗?而且,使用这些发电机有什么好处?

我附加了我的生成器代码,也许我想念一些东西:

require 'rails/generators/named_base'
require 'mongoid'

module Mongoid
  module AttackGenerator
    def generate_model
      invoke "mongoid:model", [name] unless model_exists? && behavior == :invoke
    end

    def inject_field_types
      inject_into_file model_path, migration_data, after: "include Mongoid::Document\n" if model_exists?
    end

    def migration_data
      field :link_url, type: String
      field :token, type: String
    end

    def model_exists?
      File.exists?(File.join(destination_root, model_path)) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-plugins rails-engines

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