小编Ale*_*exR的帖子

NSArray和NIL值.如何返回数组中非NIL值的数字("count")

关于NSArray我有两个问题:

  • 如何将nil值添加到数组中?会添加[NSNull null]正确吗?
  • 在视图中返回此数组的nil和非nil值的数量(计数)的最佳代码是什么?

谢谢!!

arrays objective-c nsarray ios

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

NSDictionary的深度可变副本到NSMutableDictionary中

我有一个属性列表,我读入NSDictionary,我想从中创建一个可变副本到NSMutableDictionary来编辑内容,然后能够通过复制原始内容来重置可变字典.

NSDictionary *defaultRows;
NSMutableDictionary *rows;

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"];
defaultRows = [[[NSDictionary alloc] initWithContentsOfFile: plistPath] objectForKey:@"rows"];
Run Code Online (Sandbox Code Playgroud)

这就是我尝试创建原始字典的副本(根据Apple的建议):

rows = [NSMutableDictionary dictionaryWithDictionary: defaultRows];
Run Code Online (Sandbox Code Playgroud)

当我尝试用以下内容更改字典行的内容时:

[[[rows objectForKey:self.company.coaTypeCode] objectForKey:statementType] removeObjectsAtIndexes:rowsToDelete];

我收到运行时错误*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object'.

我在这里阅读了这篇文章,但想知道是否有更优雅的方法来实现深层拷贝?

objective-c nsdictionary nsarray ios

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

用于在Core Data中执行计算的链式表达式

首先:新年快乐:-)

我想做什么

我试图在Core Data中划分两个属性,然后计算这些划分的平均值.属性由一个键路径指定(例如eur,usd,aud).

示例: 我有以下数据集:

date         eur   usd    aud
------------------------------
2010-01-01   0.5   1.0    1.5
2010-01-02   0.6   1.1    1.6
2010-01-03   0.4   1.0    1.3
Run Code Online (Sandbox Code Playgroud)

划分两个属性,例如eur/usd和以下结果......

divide eur / usd:
------------------
2010-01-01   0.5
2010-01-02   0.54
2010-01-03   0.4
Run Code Online (Sandbox Code Playgroud)

...然后计算这些数字的平均值 (0.5 + 0.54 + 0.4)/3 = 0.48

我的代码

由于我希望Core Data直接执行这些计算,因此我创建了以下表达式和获取请求:

NSExpression *fromCurrencyPathExpression = [NSExpression
    expressionForKeyPath:fromCurrency.lowercaseString];
NSExpression *toCurrencyPathExpression   = [NSExpression
    expressionForKeyPath:toCurrency.lowercaseString]; 
NSExpression *divisionExpression = [NSExpression
   expressionForFunction:@"divide:by:"
   arguments:@[fromCurrencyPathExpression,
   toCurrencyPathExpression]];

NSExpression *averageExpression = [NSExpression expressionForFunction:@"average:"
   arguments:@[divisionExpression]];

NSString *expressionName = @"averageRate";
NSExpressionDescription …
Run Code Online (Sandbox Code Playgroud)

sqlite core-data objective-c ios nsexpression

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

以编程方式更改导航栏标题:添加符号并更改其颜色

我想在我的导航控制器的标题中添加一个字符符号(例如空白字符后跟子弹符号"•")UINavigationBar.根据我的应用程序的状态,我想改变子弹的前景色.

我想过使用属性字符串可以改变颜色.但是,我没有找到直接访问标题并为其分配属性字符串的方法.

您建议在一个解决方案中添加字符符号UINavigationBar以及能够更改其颜色的解决方案是什么?

谢谢!

objective-c uikit uiview uinavigationcontroller ios

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

为什么self.splitViewController == nil?

我使用Xcode 6的Master Detail Application模板创建了一个新的iOS 8项目.我没有以任何方式更改代码.

在设置断点DetailViewController.m并检查self.splitViewController属性时,如下面的屏幕截图所示,它将返回nil.

在此输入图像描述

这是为什么?

根据Apple UISplitViewController 文档,self.splitViewController应该返回最近的SplitViewController:

如果接收器或其祖先之一是拆分视图控制器的子级,则此属性包含拥有的拆分视图控制器.如果视图控制器未嵌入拆分视图控制器中,则此属性为nil.

objective-c uiviewcontroller uisplitviewcontroller ios ios8

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

核心情节:如何将两个 y 轴的轴标题定位在同一高度?

我在散点图中使用了两个 y 轴(y 和 y2),我想将每个轴的标题放置在相同的高度。

请参考我下面的示例图表,其中有两个标题(y:“USD”和 y2:“ev/ebit”)。不幸的是,我没有找到在完全相同的高度(y 值)绘制两个标题的方法。

这是我目前计算标题的 y 位置的方式:

double yTitleLocation = plotSpace.yRange.lengthDouble + plotSpace.yRange.locationDouble;
yAxis.titleLocation = CPTDecimalFromDouble(yTitleLocation);
yAxis.title = self.issue.company.contrCurrency;
yAxis.titleRotation = 2 * M_PI;
yAxis.titleOffset = -15;

double y2TitleLocation = valuationPlotSpace.yRange.lengthDouble + valuationPlotSpace.yRange.locationDouble;
y2Axis.titleLocation = CPTDecimalFromDouble(y2TitleLocation);
y2Axis.title = self.valuation.id;
y2Axis.titleRotation = 2 * M_PI;
Run Code Online (Sandbox Code Playgroud)

我需要如何更改我的代码以在两个 y 轴的相同 y 值处绘制标题?

你有什么建议让我的 y 轴标题左对齐,y2 轴右对齐。我目前在 y 轴上使用 titleOffset,但相信可能有更好的方法来做到这一点。

谢谢! 轴标题

Core-Plot框架中bug修复后的图表:(请参考下面的答案1)

在此处输入图片说明

编辑:这就是我设置图表的方式:

我添加了这个代码片段来展示我如何设置图表和两个散点图(股票价格和估值):

graph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
self.hostView.hostedGraph = graph;
[graph applyTheme:[CPTTheme themeNamed:kCPTPlainWhiteTheme]];    
graph.frame = self.view.bounds;
graph.plotAreaFrame.masksToBorder = …
Run Code Online (Sandbox Code Playgroud)

objective-c uiview core-plot ios

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

核心图:使用自动缩放时,保持x轴与其轴标签之间的偏移不变(plotSpace:scaleToFitPlots)

在我的散点图中,我使用Core-Plot的自动缩放功能,根据我的测试图(见下文),它似乎工作正常.

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
[plotSpace scaleToFitPlots:[NSArray arrayWithObject:sharePricePlot]];
[valuationPlotSpace scaleToFitPlots:[NSArray arrayWithObject:valuationPlot]];

CPTMutablePlotRange *xRange = [plotSpace.xRange mutableCopy];
CPTMutablePlotRange *yRange = [plotSpace.yRange mutableCopy];

[xRange expandRangeByFactor:CPTDecimalFromDouble(1.0)];
[yRange expandRangeByFactor:CPTDecimalFromDouble(1.0)];
plotSpace.xRange = xRange;
plotSpace.yRange = yRange;
Run Code Online (Sandbox Code Playgroud)

我为我的x轴使用自定义标签,我在标准枚举中设置.在此枚举中,我根据演示应用程序设置每个轴标签,如下所示:

CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText:[NSString stringWithFormat:@"%u", year]
textStyle:xAxis.labelTextStyle];
newLabel.tickLocation = CPTDecimalFromUnsignedInteger(idx);
newLabel.offset = 0;
[xAxisLabels addObject:newLabel];
Run Code Online (Sandbox Code Playgroud)

但是,即使我将偏移设置为0,它应该将标签定位在非常靠近x轴的位置(在我的视图中),轴和标签之间的偏移也会根据y值的范围而有所不同(请参阅到下面亚马逊和Priceline的图表).

如何设置x轴和标签之间距离,与(自动缩放的)y值无关?

图1:亚马逊 亚马逊

图2:Priceline Priceline的

谢谢!

objective-c core-plot ios ios5

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

比较两个BOOL值

在我的实例方法中,想要将BOOL参数与静态变量的内容进行比较,例如:

- (NSArray*)myMethod:(NSString*)someString actualValuesOnly:(BOOL)actualValuesOnly {
static NSString *prevSsomeString;
static BOOL prevActualValuesOnly;
static NSArray *prevResults

if ([someString isEqualToString:prevSomeString] && 
              ([actualValuesOnly isEqual: prevActualValuesOnly]) 
               // HOW TO COMPARE THESE TWO BOOLEANS CORRECTLY?? 
    { return prevResults; }// parameters have not changed, return previous results 
else { } // do calculations and store parameters and results for future comparisons)
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

comparison boolean objective-c ios

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