小编sas*_*ang的帖子

释放财产的可接受方式

假设有一个具有以下接口的类:

#import <Foundation/Foundation.h>

@interface MyClass : NSObject {

}
@property (nonatomic, retain) NSDate* myDate;

-(void)foo;

@end
Run Code Online (Sandbox Code Playgroud)

以及以下实施:

#import "MyClass.h"


@implementation MyClass
@synthesize myDate = _myDate;

- (void)dealloc
{
    [_myDate release];
    [super dealloc];
}

-(void)foo
{
    NSDate* temp = [[NSDate alloc] init];
    self.myDate = temp;
    [temp release];
}

@end
Run Code Online (Sandbox Code Playgroud)

1)在这样的函数foo中将释放,以确保正确保持对象的保留计数(即没有内存泄漏且没有执行不必要的释放).

    NSDate* temp = [[NSDate alloc] init];
    self.myDate = temp;
    [temp release];
Run Code Online (Sandbox Code Playgroud)

2)与1)中的问题相同,但适用于以下技术:

self.myDate = [[NSDate alloc] init];
[self.myDate release]
Run Code Online (Sandbox Code Playgroud)

3)与1)中的问题相同,但适用于以下技术:

self.myDate = [[NSDate alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)

4)与1)相同的问题,但适用于以下技术:

self.myDate = …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

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

如何在 ASP .NET 中的 configureServices 函数中获取连接字符串

我正在尝试使用身份服务来管理我的应用程序的登录。我有以下

let configureServices (services : IServiceCollection) =
    // Configure InMemory Db for sample application        
    services.AddDbContext<IdentityDbContext<IdentityUser>>(
        fun options ->        
            options.UseInMemoryDatabase("NameOfDatabase") |> ignore
        ) |> ignore
Run Code Online (Sandbox Code Playgroud)

但是它使用内存数据库。我想保留用户注册信息,并且我有 postgresql 设置并想使用该数据库来保留信息。我在 settings.json 文件中有 connectionString 信息。我想把上面的函数改成这样:

let configureServices (services : IServiceCollection) =
    // Configure InMemory Db for sample application        
    services.AddDbContext<IdentityDbContext<IdentityUser>>(
        fun options ->        
            let config = ctx.GetService<IConfiguration>()
            let connString = config.Item("connectionString")
            options.UseNpgsql(connString) |> ignore
        ) |> ignore
Run Code Online (Sandbox Code Playgroud)

但问题出在 configureServices 函数中,我无权访问处理应用程序配置的 Httpcontext(由上面的 ctx 表示)。我该怎么做呢?基本上我想从我的 configureServices 函数中的 settings.json 文件中获取 connectionString 字段的值。

c# asp.net f# f#-giraffe

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

如何将本地提交置于拉头之上

如何让我的本地提交出现在最近拉头的顶部?

这是发生了什么:

1)我做了一些改变

2)在我的本地存储库中提交它们

3)从远程存储库中拉出(现在我有2个eads,其中一个是我的本地更改)

4)如何将我的本地更改放在另一个头上?我也想接受最近拉头的所有更改,以便它不要求我合并那些不属于我所做的本地更改集的文件.

mercurial

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

占内存消耗

考虑流程消耗的内存的策略是什么?例如,我有一个程序,在旧版本中,它对内存的使用不是最理想的,并且它没有在正确的时间发布,这意味着它保留了比它应该的更长的分配.请注意,我并不是说它泄露了.该程序的新版本修改了算法,现在内存在程序的生命周期中更早发布.怎么跟踪这个?想到的一些方法是:编写一个包含libc/libstdc ++的malloc/new替换库,以某种方式使用valgrind来执行它或使用ps对流程使用的内存进行采样并绘制图形?

c c++ linux

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

使用f#/ fable/asp.net/react为谷歌登录添加一个按钮

我正在使用SAFE堆栈(https://safe-stack.github.io/)并通过示例dojo.到目前为止它很棒.

我想扩展这个示例以包含一个通过Google登录/验证的按钮.所以我查看了Google网站上的一个示例(https://developers.google.com/identity/sign-in/web/build-button).然后我看看如何使用ASP.NET进行身份验证(https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/google-logins?view=aspnetcore-2.1&tabs= aspnetcore2x)结果我最终对如何将其集成到SAFE项目感到困惑.有人能告诉我他们会做什么吗?我应该尝试使用ASP.NET身份还是应该使用JWT方法?我甚至都不知道它们是否相同,因为我对Web框架很新......

我的另一个问题是如何将原始Javascript注入SAFE项目的客户端.上面的谷歌示例显示了原始的JS/CSS/HTML代码?我应该按原样注入,还是应该在React中查找一些按钮来执行此操作并将该想法反映到寓言中?

asp.net f# jwt reactjs

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

解决.net名称空间冲突

我正在使用长颈鹿,并试图整合Elmish.Bridge。我收到以下错误:

error FS0892: This declaration opens the module 'Elmish.Bridge.Giraffe', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries.

如果我按以下顺序打开模块:

open Elmish.Bridge
open Giraffe
Run Code Online (Sandbox Code Playgroud)

但是如果我调换订单,错误就会消失。

open Giraffe
open Elmish.Bridge
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会发生这种情况以及如何最好地解决吗?

.net f# elmish

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

你怎么知道pushViewController保留了被推送的对象?

这里的答案都说pushViewController保留了给定的viewController,但它们没有引用说明这一点的文档.

问题是他们如何知道pushViewController将保留给定的视图控制器?我们可以假设所有其他带有NSObject*派生对象指针的类遵守此约定吗?

编辑:

我需要一个比目前提出的答案提出的更有力的论据/证据.例如,有关UIView :: addSubview的文档明确指出"此视图由接收方保留".或者,如果您打算通过暗示显示接收到的控制器,因为UINavigationController具有与集合类相同的语义,那么通过显示它在内部使用其中一个集合类或引用一些指出的文档来显示它确实存在这个.pushViewController的文档说给定的视图控制器放在"导航堆栈"上,但它没有说明这个堆栈是什么类.实际上,查看UINavigationController的头文件中的定义,看起来它不是使用堆栈,而是使用NSMutableArray.如果你已经完成了数学学位和书面证明,那么你就会理解我正在寻找的那种严谨的知识分子.

iphone objective-c uinavigationcontroller ios

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

如何查找变更集所在的版本

有什么方法可以找到给定变更集的版本?

例如,给出了这个变更集:http://git.kernel.org/?p = linux/kernel/git/torvalds/linux.git; a = commit; h = 50d3e6399a61fca53c5c440a79f71299db66b803

我如何使用git告诉我这个变更集最早发布的版本?

linux git

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

gcc:缺乏关于构造函数初始化顺序的警告

gcc应该警告成员变量的初始化顺序abC类吗?基本上,对象b被初始化,并且在对象A之前调用它的构造函数.这意味着b使用未初始化的a.

#include <iostream>

using namespace std;

class A
{
    private:
        int x;
    public:
        A() : x(10) { cout << __func__ << endl; }
        friend class B;
};

class B
{
    public:
        B(const A& a) { cout << "B: a.x = " << a.x << endl; }
};

class C
{
    private:
        //Note that because b is declared before a it is initialized before a
        //which means b's constructor is executed before a. …
Run Code Online (Sandbox Code Playgroud)

c++ gcc initialization initializer-list

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

bash,sed,awk:提取范围内的行

我该如何用sed提取两种模式之间的界限,即数据写入一个文件,然后提取下一范围之间的界限和写入文本到另一个文件?例如,给出以下输入:

pattern_a
line1
line2
line3
pattern_b
pattern_a
line4
line5
line6
pattern_b
Run Code Online (Sandbox Code Playgroud)

我希望line1 line2和line3出现在一个文件中,line4 line5和line6出现在另一个文件中.我看不出这样做,而无需使用一个循环,并保持循环迭代之间的一些状态,其中状态告诉你在哪里SED必须开始启动搜索来寻找开始模式(pattern_a)再次的方式.

例如,在类似bash的伪代码中:

while not done
  if [[ first ]]; then
    sed -n -e '/pattern_a/,/pattern_b/p' > $filename
  else
    sed -n -e '$linenumber,/pattern_b/p' > $filename
  fi
  linenumber = last_matched_line
  filename = new_filename
Run Code Online (Sandbox Code Playgroud)

使用sed有一种漂亮的方式吗?或者会更好吗?

bash awk sed

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