小编Chr*_*ris的帖子

didReceiveMemoryWarning,viewDidUnload和dealloc

我查看过很多帖子,我的书和Apple Developer,并收集了大部分使用这些内容所需的理解.如果某个善良的人能够证实我做对了(或纠正了我)并回答了这两个问题,我将非常感激.

非常感谢,

克里斯.

消息顺序 通常,消息将按以下顺序显示:

  • didReceiveMemoryWarning

  • viewDidUnload(可能由1引起) - 显然只适用于View Controller Classes.

  • 的dealloc

didReceiveMemoryWarning

系统内存不足时调用.

默认情况下,视图控制器已注册内存警告通知,并且在模板方法中,如果没有超级视图,则调用[super didReceiveMemoryWarning]会释放视图,这是一种检查视图是否可见的方法.它通过将其属性设置为nil来释放视图.

操作 - 释放您不需要的任何内容,可能会撤消您在viewDidLoad中设置的内容.不要释放UI元素,因为viewDidUnload应该释放这些元素.

问题1 - 即使View可见,它似乎也会被调用,因此很难看到你可以安全释放的内容.了解这一点以及可以发布的一些示例将非常有用.

viewDidUnload

每当不可见的View Controller的View属性设置为nil时调用,手动或最常通过didReceiveMemoryWarning.

viewDidUnload方法在那里你可以: - 清理你想要的任何其他内容,以节省额外的内存,或者 - 如果你保留了一些IBOutlets,以帮助释放内存,而这些内存不会被卸载的视图释放.

操作 - 通常在dealloc中释放的任何IBOutlet也应该在此方法中释放(并且引用设置为nil).请注意,如果将属性设置为retain,则将它们设置为nil也会释放它们.

的dealloc

在取消分配视图控制器对象时调用,当保留计数降为零时将调用该对象.

操作 - 释放类保留的所有对象,包括但不限于具有保留或复制的所有属性.

弹出视图控制器和内存

问题2 - 弹出视图是否将其从内存中删除?

iphone memory-management uiviewcontroller

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

在网络更改中更新iPhone可达性

编辑23.5.11

我现在想知道我是不是在设计这个.当我使用在线连接时,我正确处理它 - 要么:

  • 在后台显示进度或活动指示器,如果失败,我会显示一条合适的消息或

  • 我调用另一个应用程序,Safari或Maps,然后进行自己的检查,如果没有连接则失败.这使用户处于失败的其他应用程序中,这不是完美的.

所以,如果我按照下面的建议行事,并且标准可达性返回无法到达,那么我必须做一个NSURLConnection,以防收音机进入睡眠状态,然后我不确定这比仅仅尝试获取在线资源更好首先.

如果有人可以提供帮助 - 我会非常感激.我几乎准备好提交,只需要做到这一点.

我使用Apple的Reachability样本通常效果很好,除非移动或蜂窝连接进入休眠状态然后回来或wifi进入,然后依赖蜂窝连接.

移动(蜂窝)连接不变时很好.这与我读过的评论一致,当蜂窝无线电关闭时你必须再次手动唤醒它.但是,我看不出怎么做.

我需要设置NSURLConnection吗?一些示例代码会很棒.当我收到没有连接的通知时,我会发送NSURLConnection并告诉用户稍后再试一次然后如果我收到一个回调说它成功了,那么从可达性中覆盖关闭设置?

另外,每当看起来没有连接时,我是否需要这样做,以防万一 - 这似乎浪费资源而不是那样.egan iPod Touch不在wifi范围内.

我也看过DDG的替代品,但看起来会有同样的问题.

任何有用的建议都会受到热烈欢迎.

谢谢,

克里斯.

iphone nsurlconnection app-store reachability

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

Visual Studio恢复备份位置和冻结

我们发现如果我们的代码存储在网络驱动器上,Visual Studio会频繁挂起.移动到本地驱动器修复此问题.

但是,现在我们正在使用Modeller,它将恢复信息保存到

H:\ Visual Studio 2012\Backup Files

并且似乎没有选择改变它.

因此,它经常与"保存自动恢复信息"挂起.它最终会完成,但需要几分钟才能完成.

我们的网络驱动器适用于其他程序等.

有没有人看过这个并找到了解决方案?该位置是注册表设置吗?

networking entity-framework visual-studio visual-studio-2012

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

从实体框架数据库优先切换到代码优先

我们的解决方案目前基于 Entity Framework Database First。我们有一个从 EDMX 生成存储库类的 T4 模板。

我们正在审查发布更改的计划方法,尤其是数据库更改。如果我们先继续Database,那么我们需要单独生成脚本来改变开发和其他数据库。

似乎使用 Code First,我们只需更改模型并生成脚本来更改各种数据库。这看起来更直接,不涉及手工编写脚本过程和更低的风险。

因此,如果我们进行切换,是否只是以下情况:

  • 将先前生成的模型从我们的实体项目中的 EDMX 移动到(它们目前都在一个类文件中)到实体项目中文件夹中的(最好是单独的)类文件
  • 调整 T4 模板以从新位置拾取模型
  • 不再使用 EDMX 和从数据库更新
  • 当我们想对模型进行更改时,只需更改(以前但不再生成的)类
  • 使用 Code First 迁移实现对测试和其他数据库的更改

最后,我们将如何看待模型之间的关系?有没有办法创建图表?

谢谢,

克里斯

t4 entity-framework visual-studio ef-code-first ef-database-first

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

与 D3 图表重叠的传单 - 需要将图表保留在一个地方

我有一张带有圆形标记和径向条形图的传单地图。我想:

  1. 圆形标记与底层地图一起移动(以便它们保持真实世界的位置)但是
  2. 移动地图时在窗口/容器内保持不变的径向图

圆形标记移动良好,但径向图表随我不想要的地图移动。

我在central_map_svg 中放置了圆形标记,在chart_svg 中放置了径向图。两者都是leaflet_svg的孩子,我认为这就是问题出现的地方。但是,如果它们没有相同的父项,则它们会单独出现。

我在下面包含了简化的可重现代码。

在此处输入图片说明

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="https://d19vzq90twjlae.cloudfront.net/leaflet-0.7/leaflet.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js"></script>
    <!-- Load d3.js -->
    <script src="https://d3js.org/d3.v5.js"></script>
    <!-- Function for radial charts -->
    <script src="https://cdn.jsdelivr.net/gh/holtzy/D3-graph-gallery@master/LIB/d3-scale-radial.js"></script>
    <!-- Leaflet -->
    <script src="https://d19vzq90twjlae.cloudfront.net/leaflet-0.7/leaflet.js"></script>

</head>
<body>
    <div id="map" style="width: 800px; height: 800px"></div>
    <script type="text/javascript">

        // set the dimensions and margins of the graph
        var size = 800;
        var margin = { top: 100, right: 0, bottom: 0, left: 0 },
            width = size - margin.left …
Run Code Online (Sandbox Code Playgroud)

javascript css d3.js leaflet

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

如何在iPhone应用程序中使用Offline Cloudmade Maps

我通过对现场Cloudmade的职位看这里,我得到了一些,但不是全部.我已经发布了下面的问题,但没有得到我需要的帮助,所以我想我会问这里的问题.

我可以看到我需要:

  • 将所需区域的磁贴下载到我的Mac(但无法看到如何执行此操作)
  • 使用map2sqlite实用程序将这些转换为sqlite数据库,更改代码以将切片输出到名为"ZCACHE"的表,而不是"tiles"
  • 将数据库复制到应用程序包
  • 插入一些代码,以便在第一次运行时从Application Bundle复制到DB,然后再复制到Documents Directory
  • 不知怎的,让App使用这个数据库而不是在线数据库 - 我看不出它是如何完成的.

任何帮助都会受到热烈欢迎,

克里斯.

iphone cloudmade

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

Facebook iOS SDK - 写入状态的奇怪效应

我正在更新我的应用程序以使用xCode 4,iOS5和最新的Facebook SDK.一切都很好.

现在,发生了两件奇怪的事情,尽管审查了所有代码并搜索了论坛,我看不出原因.

请参阅下面的更新

登录第一次

当用户刚刚登录时,如果他们共享状态或取消尝试,则会显示如下脚本:

<script type="text/javascript"> window.location.href="fbconnect:\/\/ success#_=_";
</script>
Run Code Online (Sandbox Code Playgroud)

所有其他功能(例如,它不是第一次)似乎工作正常.

我怀疑这与回调没有触发有关,但我已经仔细检查了所有委托设置等.所有的facebook委托方法都在appDelegate中,然后从视图控制器中引用.

其他人遇到过这个问题吗?任何指针都会受到热烈欢迎.我还没有发布任何代码,因为我不确定要关注哪一点,我已经使用了facebook开发者网站上的所有标准代码.

非常感谢,

克里斯.

UPDATE

感谢@Kristofer Sommestad和@Senior的帮助.我有很多问题.

不要授权两次

订阅源对话框请求也请求授权,因此请勿同时请求它们.

更新了SDK

我发现问题后SDK已更新 - 请继续检查.

我没有意识到使用SDK代码所需的代码已经改变,特别是调用feed对话框的代码.查看https://developers.facebook.com/docs/reference/dialogs/feed/.

退出意味着什么

注销只是将用户从您的应用程序中注销,而不是从Facebook中注销.

iphone facebook login ios

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

通过 R 将“点击”事件添加到传单多边形

如何向传单地图上绘制的每个多边形添加鼠标“单击”事件?我想这样做,这样我就可以根据功能中的数据过滤单独的小部件(在本例中为 WD21CD)。

添加了多边形的 leaflet.js 地图

---
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)

library(tidyverse)
library(htmltools)
library(leaflet)

```
```{r cars, echo=FALSE}

url <- 'https://opendata.arcgis.com/api/v3/datasets/bf9d32b1aa9941af84e6c2bf0c54b1bb_0/downloads/data?format=geojson&spatialRefId=4326'
wardShapes <- sf::st_read(url) %>%
  filter(WD21CD >= "E05011175" & WD21CD <= "E05011181")

leaflet(wardShapes,elementId = "bhamMap",
        height = 550,# width = 10,
        options = leafletOptions(minZoom = 10, maxZoom = 14)) %>%
  addTiles() %>%
  setView(lng = -1.810, lat = 52.555, zoom = 12) %>%
  addPolygons(
    weight = 0.5, smoothFactor = 0.5,
    opacity = 1.0, fillOpacity = 0.2,
    highlightOptions = highlightOptions(color = …
Run Code Online (Sandbox Code Playgroud)

javascript gis r leaflet r-leaflet

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

NSMutableArray实例变量内存管理

我正在做最后一点内存管理整理,有些事我不明白.我已经检查了所有文档,Stack Overflow等,但仍然没有得到它.我怀疑它与数组有关.

我有一个NSMutableArray实例变量,用于保存从另一个数组中的对象创建的对象.

-viewDidLoad 按如下方式初始化数组:

self.photoAlbum = [[NSMutableArray alloc] initWithCapacity:100];
Run Code Online (Sandbox Code Playgroud)

然后它调用一个填充它们的方法.

int i = 0;
for (Gem *gem in self.entityArray) {
    NSString * filePath = [[NSString alloc] initWithFormat: @"%@/%@2.jpg", [sysPaths objectAtIndex: 0], gem.detailsTitle];  
    // there is some stuff in here that means that there isn't a one to one relationship between the objects in gem and those in photo
    Photo *photo = [[Photo alloc] init];
    photo.filePath = filePath;
    photo.title = gem.title;
    photo.index = [NSNumber numberWithInt:i];
    [self.photoAlbum addObject:photo];
    [filePath …
Run Code Online (Sandbox Code Playgroud)

memory-management objective-c nsmutablearray

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

D3 径向树状图仅显示部分

我根据 Mike Bostock 在 Observable 中的示例创建了下面的代码(我知道它与原始 d3/javascript 不同)https://observablehq.com/@d3/radial-dendrogram

然而,它:

  • 仅当我删除 return svg.attr("viewBox", autoBox).node(); 时才显示;在图表功能的末尾。我怀疑这导致了以下问题
  • 剪得很紧
  • 看起来中心在屏幕左上角的坐标 0,0 处,所以四分之三的可视化不在屏幕上。我曾尝试添加转换翻译,但这无济于事

在此处输入图片说明

任何想法都热烈欢迎...

索引.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
    <script src="https://d3js.org/d3.v6.js"></script>
    <link rel="shortcut icon" href="#">
    <title>Radial Dendrogram</title>
</head>

<body>
    <div id="vis">  
    </div>
    <script src = 'script.js'></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

脚本.js

function chart(birdDataSet) {
    const root = tree(d3.hierarchy(birdDataSet)
        .sort((a, b) => d3.ascending(a.data.name, b.data.name)));
  
    svg.append("g")
        .attr("fill", "none")
        .attr("stroke", "#555")
        .attr("stroke-opacity", 0.4)
        .attr("stroke-width", 1.5)
      .selectAll("path")
      .data(root.links())
      .join("path")
        .attr("d", …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js

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

令人费解:如果声明<=未按预期工作

这可能是显而易见的,但我看不到它......

NSLog(@"nthObject = %i, [mutableFetchResults count] - 1 = %i", nthObject, [mutableFetchResults count] - 1);
if (nthObject <= [mutableFetchResults count] - 1) {
    MyObject *myObject = [mutableFetchResults objectAtIndex:nthObject];
Run Code Online (Sandbox Code Playgroud)

mutableFetchResults的计数为零,因此[mutableFetchResults count] - 1 = -1且nthObject为0.这由Log证实.

nthObject是传递给方法的int.

因此,of语句应该说if(0 <= -1)因此不会触发MyObject*myObject = [mutableFetchResults objectAtIndex:nthObject]行,但是它会在尝试访问空数组时导致崩溃.

有任何想法吗?

非常感谢,

克里斯.

iphone debugging objective-c

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

调用动态SQL Server存储过程 - 期望未提供的参数

我正在尝试调用存储过程,其名称通过循环表提供.存储过程位于另一个数据库中.

但是,我一直在收到消息

过程或函数'sp_KPI_People_Added_Count'需要参数'@Period',这是未提供的.

但它正在供应.

我已将语句和参数定义设置为并为其NVarChar添加前缀N.我也在参数本身上试过这个,但显然这不是必需的.

所有打印输出都是预期的,如果我用文本调用执行,它工作正常.

所以我被卡住了.任何指针都会受到热烈欢迎.

谢谢,

克里斯.

Declare @KPI_Value Decimal(14,4)
Declare @StoredProcedure NVarChar(200)
Declare @Periodic Char(1)
Declare @ExecSql NVarChar(200)
Declare @ParameterDefinition AS NVarChar(200)

Declare KPI_Cursor CURSOR LOCAL FOR
    SELECT SProc, Periodic from KPI where Section = 2
    FOR UPDATE OF Current_Value

Open KPI_Cursor

Fetch Next From KPI_Cursor into @StoredProcedure, @Periodic
Declare @Required_Period VARCHAR(5)
SET @Required_Period='MTD'

While @@FETCH_STATUS = 0 BEGIN
Set @KPI_Value = 0  -- Have tried with and without this

    If @Periodic = …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures

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

生产中的 JavaScript 刷新 - IIS

我环顾四周并试图理解这一点,但我不明白。

为什么当我向 Production 发布更新了 javascript 文件的新版本时,用户的浏览器没有获得最新版本。

当然,如果 javascript 文件由于被更改而具有新日期,那么浏览器的版本应该是旧的,因此它应该请求更新的版本。

相反,用户必须按 CTRL Shift R 进行强制刷新。

我错过了什么?我需要在 IIS 中更改设置吗?

我们使用 Google Chrome 作为浏览器。Javascript 和 CSS 文件被缩小和捆绑。

javascript css iis google-chrome bundling-and-minification

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