小编Nul*_*sis的帖子

如何在Swift中迭代NSMapTable中的所有项目

我在Swift尝试这样的东西,但没有工作.错误是:Type()不符合BooleanType类型

//visibleCollectionReusableHeaderViews is of type NSMapTable!

var enumerator: NSEnumerator = visibleCollectionReusableHeaderViews.objectEnumerator()
var myValue: AnyObject!

while (( myValue = enumerator.nextObject()))
{

}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我不认为我理解如何迭代NSMapTable,甚至只是为了得到它的第一项.

ios swift

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

Swift中的小数

我正在编写一个Swift应用程序,并在数据库中处理小数(以小数形式存储在mysql中,有2位数.基本上它是每天销售的人,所以通常是0到1000美元之间的任何东西,但不是数百万,并且没有什么是疯狂的尾随小数,只是总是舍入到2位小数).

引用这个帮助我: 如何在ios上正确格式化货币

..但我想在这里做一个快速的理智检查,并确保这个策略没问题.即我会使用NSDecimal或NSDecimalNumber(有一个首选的快速等价??)

在Swift中处理货币时,你会建议我做什么?我也想使用基于语言环境的货币符号.我有一个名为Sales的类,其中包含有问题的数量.你推荐什么数据类型?

抱歉,如果我是懒惰的,我实际上有一些想法,但在"正确"的方法中感到有点不知所措,特别是在区域敏感的方式,并希望在这里与大家一起检查.

非常感谢!

ios swift ios8

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

了解client_id和client_secret

有点像OAUTH的初学者,想问我是否理解正确的东西.我正在使用OWIN和C#,我设置了以下场景:

  1. 用户向我的令牌端点发出请求,并使用grant_type密码传递用户名/密码.如果凭证有效,那么我创建一个JWT.

  2. 用户返回JWT,然后客户端使用该令牌继续执行所有请求

  3. 任何需要授权的请求我都使用令牌的声明来确保允许用户发出此请求.

那么client_id和client_secret在哪里呢?这只是一个额外的安全层,说"在你甚至可以获得一个令牌之前,你需要传递一套凭证(id/secret),只有这些凭证有效,除了你提供的用户名/密码之外,还可以你回来了JWT?

想了解这两者有什么关系 - 非常感谢!

oauth oauth-2.0 owin

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

UITableCell字体大小(在Swift中)

我已经尝试了很多组合但似乎无法在Xcode 6/Swift中减少字体大小.我基本上在一个表格单元格中有6个订单项,但它只适合3(我希望将字体缩小,希望它会显示更多,并且可能不会滚动或滚动太多).

这是我的代码:

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell

        cell.textLabel.adjustsFontSizeToFitWidth = true
        cell.textLabel.minimumScaleFactor = 0.1
        cell.textLabel.minimumFontSize = 10.0
        cell.textLabel.font = UIFont.systemFontOfSize(10.0)
    cell.textLabel.text = String(reportData[indexPath.row] as NSString)


    return cell
}
Run Code Online (Sandbox Code Playgroud)

虽然我知道上面设置的每一件东西都不是最好的做法(缩放因子,字体大小,新字体等等,但我只是想表明我已经尝试了所有东西).

大家都知道上面的一些不起作用的任何错误或问题吗?设置每个单元格的字体大小的正确方法是什么?

谢谢!

uitableview swift ios8

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

OData Delta补丁安全

我在Web API 2中使用Delta的用户类有一个工作PATCH.通过使用.patch方法,我可以轻松地只检测发送的更改然后相应地更新,而不是必须接收整个用户!

问题是我想要保护几个字段,因此它们永远不会更新.

我在SO上看到了一个例子,但它并没有利用Delta,而是似乎稍微过时并且实际上手工编写了所有的补丁代码.难道没有办法轻易告诉OData的补丁跳过你指定的属性(也许我需要覆盖补丁并告诉它以避免一些属性)?

我怎么会开始这样做(或者我应该搜索/研究什么才能开始)?动作过滤器/验证在这里有作用吗?我是否考虑过模型绑定?是否覆盖补丁?

谢谢!

c# odata asp.net-web-api2

10
推荐指数
3
解决办法
2989
查看次数

具有多个实体的存储库创建DTO

在这里做一些C#代码审查,并注意到开发人员在5个附加表中进行连接,并在DTO中进行内联IQueryable投影.在存储库中加入的表是User,Appointment,CommunicationPreference,UserProductProduct.我没有设计系统,我可能在某种程度上简化了它,但是现在就让我们按照这个原则进行操作.使用Entity Framework和Web API.

这有点长,所以我道歉,但真的好奇听到别人对这件事的看法.

因此,这些表的相关之处在于每个用户都有一个即将到来的服务预约列表来为其产品提供服务.UserProduct表显示产品和用户之间的关系,product表显示产品的种类.CommunicationPreference处理他们希望如何联系他们的服务,例如他们的服务何时到期,是否有人来服务产品,他们希望如何联系(电话电子邮件文本等).

因此,开发人员将这些表连接在存储库本身,然后创建一个名为"UserServiceOverviewDto"的DTO,它返回到控制器然后返回到前端,并且基本上有信息以网格形式显示给客户代表(用户是谁) ,即将到来的约会,什么产品,基本上我刚才写的一切).

我理解为什么他们这样做 - 而不是对5个不同的存储库进行5次调用,而是将它们全部组合在一起,然后不必将每个存储器转换为DTO,而是一次性完成所有操作.但我知道存储库也不应该返回DTO.理想情况下,您的存储库应返回逻辑上聚合的内容,并代表解决您问题的一个实体.

在我考虑这个的时候,我偶然发现了这个在查询Repository层中的多个实体时返回什么类型?但它并没有真正帮助我,并希望就如何做更多的建议.

从DDD的角度来看,我想知道需要引入什么新的"东西".也许我需要创建一个新的上下文/存储库,这是一个新的东西.如果我试图说这是一个常见的分组,并给它一个像"X"的名称,这是否意味着我想创建一个新的数据库表来表示?可能不是,因为我已经有了存储这些信息的表格.

这是否意味着我想创建一个名为"X"的新类而没有相应的数据库表?那么这与DTO有何不同?实际上,它几乎暗示通过创建这个类,我试图通过实例化X而不是XDto来使我的存储库更纯粹,然后将X转换为服务层中的DTO(除了转移之外我还没有获得任何东西周围的东西,并创造一个非常贫穷的实体).

总而言之,问题是:

如果我在前端为了方便而将多个实体组合在一起,那么它是否更好:

  1. 让服务层进行5次不同的数据库调用,并在此层组装DTO以返回控制器?这不是坏事吗?5个电话只是为了让我的代码看起来更"纯粹"?一次性完成连接并从数据库中获取所需内容不是更好吗?
  2. 在C#中创建一个表示这5个表的结合的新类,然后在该类和相应的DTO之间实现映射.正如我上面所说,这个课程不会被坚持下去.
  3. 让存储库执行其连接以创建新的DTO作为内联投影(似乎错误的b/c存储库应该返回实体而不是DTO)

真的很期待这里的一些反馈!谢谢!

c# architecture domain-driven-design repository-pattern asp.net-web-api

6
推荐指数
2
解决办法
1259
查看次数

Digital Ocean-将生产液滴克隆到登台服务器

我有一个生产服务器-Digital Ocean Droplet-上面运行着数据库和网站。我想继续制作一个临时服务器。我认为克隆它是一个好主意,但是遵循这样的好方法是什么?

到目前为止,该计划似乎是:

  1. 关闭生产电源(尚未访问,所以可以)
  2. 拍摄生产快照
  3. 创建一个新的小滴(STAGING),选择上述生产图像

我有想念吗?这会自动创建一个公共IP地址吗?

非常感谢您的宝贵时间!

digital-ocean

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

C# MVC/API - 从 Amazon S3 为我的 API 调用返回一个图像

我正在使用 .net core 从私有 Amazon S3 存储桶上传和检索图像。

我能够成功上传它,甚至在我从 S3 下载它之后查看它,但是当我有点不确定如何将流/响应返回给客户端以进行实际的 API 调用时(例如现在我只是想使用 Postman/Fiddler 代理工具从我的 API 中取回图像)

我用于 S3 检索流的代码:

///Retrieve my image from my bucket

public async Task<string> ReadObjectData(MediaFolder key, String fileName)
    {
        string responseBody = "";
        IAmazonS3 client;

        using (client = new AmazonS3Client(accessKey, accessSecret, endpoint))
        {
            Amazon.S3.Model.GetObjectRequest request = new Amazon.S3.Model.GetObjectRequest
            {
                BucketName = bucket,
                Key = key + "/" + fileName,
            };
            using (GetObjectResponse response = await client.GetObjectAsync(request))
            using (Stream responseStream = response.ResponseStream)
            using (StreamReader reader = new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc amazon-s3 asp.net-web-api asp.net-core

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

在MSBuild中包含项目外部的文件

我在StackOverflow上找到了其他帖子来处理我遇到的问题,例如:

的MSBuild:部署未包含在项目文件以及包含在MSBuild的文件不是项目的一部分, 我想和大家分享,我是能够阅读这些文章之后创建并寻求一些帮助,为什么代码它可能不起作用?

详细说明究竟什么不是错,我打算做什么.我正在使用Visual Studio 2012和TFS 2012.

我有一个名为CreateMyFiles.bat的批处理文件,我想要执行此操作然后获取它输出的文件(它将它们输出到我的Includes/Javascript/Bundled文件夹)并将它们包含在MSBuild的部分构建中(以便将它们部署到目标IIS服务器).

当我在本地Visual Studio中编辑我的本地.csproj并将下面的代码添加到文件的底部并重新加载时,我能够右键单击我的web项目,选择"发布",然后选择我的本地文件发布配置文件确实将我的文件部署到正确的位置.有效!

然后我将我的代码检入TFS,然后转到TFS上的"构建",并排队新的构建.果然,我能够看到文件输出到构建服务器上的同一目录.现在,我不是100%肯定MSBuild,但我注意到就像我在本地发布时一样,它也在构建服务器上创建了一个_publishedWebsite文件夹(源代码上面的目录).问题是,在这个已发布的网站文件夹中,我手动创建的文件不存在.此外,在构建完成后转到目标Web服务器遗憾的是没有我想要的文件.

所以看起来如果我手动选择发布,下面的代码可以工作,但如果我要用TFS对构建进行排队,它就不起作用了.MSBuild是否使用发布?这可能是它在下面不起作用的原因吗?

这是我放在.csproj文件中的代码:

<Target Name="CustomCollectFiles">
    <Exec Command="CreateMyFiles.bat" /> <!-- Generate Files -->
    <ItemGroup>
       <!-- Create an identity called _CustomFiles, and associate it to the files I created -->
      <_CustomFiles Include="Includes\JavaScript\Bundled\*" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>Includes\JavaScript\Bundled\*%(Filename)%(Extension)        </DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>

 <!-- Hook into the pipeline responsible for gathering files and tell it to add my files -->
  <PropertyGroup>
    <CopyAllFilesToSingleFolderForPackageDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>

    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
       CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我真的坚持这个,并想要求一些帮助,说明为什么文件可能不会发生.我怀疑MSBuild不使用发布,这就是它在本地工作的原因(因为我选择发布)?

非常感谢你的帮助

更新 …

msbuild tfs

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

使用 SpriteKit/Views 与 ViewController 显示关卡

我正在 Swift 中制作游戏并希望允许用户选择一个级别(点击它)来玩该特定级别。每个级别都是屏幕上的一个框,其中包含级别编号。因此,如果该区域有 20 个级别,您会在屏幕上看到 20 个框,其中包含级别 #、名称和您获得的星星数量。我对最好的方法感到困惑。我看到两种方式:

  1. 您创建了一个拥有 UICollectionView 的视图控制器,我将级别作为数据源提供给它,并在那里处理点击事件。当你点击它时,我可以对相应的游戏场景(SKScene)做一个presentScene来处理正常的游戏绘图。

  2. 我使用 for.. 循环将关卡直接渲染为屏幕上的 SKSpriteNodes(关卡框)并执行 addChild 并设置每个精灵的位置。由于我可以有 20 个级别,因此我会每行绘制约 5 个级别,因为我的猜测是这将适合我尝试过的模拟器中的大多数设备。似乎我正在重新创建 UICollectionView 自动执行的操作,最重要的是我需要做一些技巧,例如定位和偏移等。

现在我正在做上面的方法#2,因为似乎大多数 Swift 游戏教程不使用故事板或视图控制器,而是专注于使用 SKScenes 构建所有内容,并拥有一个视图控制器,其工作只是呈现一个场景。所以当我学习时,我朝着这个方向前进。

这里的正确方法是什么?

谢谢!

sprite-kit swift swift2

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