我有一个查询字符串:a=1&b=2&c[1]=3&c[2]=4等...
我想要一个的NSDictionary那里a => 1,b => 2, c => [3,4].请注意,c的值是一个数组.它还应该能够处理类似c[1][2]=5数组的操作c => [[5]].
当然我可以通过拆分&和自己来做=,但是其他情况如数组和数组数组呢.我想要一个来自POST请求queryString 的结构化 NSDictionary,并且如果已经存在则不想重写轮子.
是否有任何类/方法,通过Apple或第三方,将查询字符串解析为结构化的NSDictionary?
更新:我尝试实现彼得指定的方法,并得到不正确的阴影.怎么了?
CGContextSetShadowWithColor(c, CGSizeMake(4, 4), kAudioThumbShadowBlur, [[UAColor blackColor] CGColor]);
CGContextFillPath(c);
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, minx, midy);
CGPathAddArcToPoint(path, NULL, minx, miny, midx, miny, kDefaultMargin);
CGPathAddArcToPoint(path, NULL, maxx, miny, maxx, midy, kDefaultMargin);
CGPathAddArcToPoint(path, NULL, maxx, maxy, midx, maxy, kDefaultMargin);
CGPathAddArcToPoint(path, NULL, minx, maxy, minx, midy, kDefaultMargin);
CGPathCloseSubpath(path);
// Fill and stroke the path
CGContextSaveGState(c);
CGContextAddPath(c, path);
CGContextClip(c);
myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, 2);
CGContextDrawLinearGradient(c, myGradient, CGPointMake(minx,miny), CGPointMake(minx,maxy), 0);
CGContextAddPath(c, path);
CGPathRelease(path);
CGContextStrokePath(c);
CGContextRestoreGState(c);
Run Code Online (Sandbox Code Playgroud)
原始问题:我希望使用以下代码在CoreGraphics中制作的自定义圆形单元格底部周围绘制一个自然的阴影:
...
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用剪切角创建一个NSScrollView,类似于Twitter应用程序:

我有一个NSScrollView子类,我添加了以下代码:
- (void)drawRect:(NSRect)dirtyRect {
NSBezierPath *pcath = [NSBezierPath bezierPathWithRoundedRect:[self bounds] xRadius:kDefaultCornerRadius yRadius:kDefaultCornerRadius];
[path setClip];
[super drawRect:dirtyRect];
}
Run Code Online (Sandbox Code Playgroud)
我希望它的内容NSScrollView有圆角,但它不符合剪切路径.我怎样才能做到这一点?
更新和澄清
我知道如何制作自定义NSScroller,我知道如何使其透明覆盖.我要问的是如何使NSSCrollView剪辑成为角落,包括它包含的所有内容.该NSScrollView是内部的NSView,其有可能会改变,这意味着视图叠加假冒圆角的背景是不是一种选择.
可以将两个对象作为彼此的参数吗?我的场景是我有一个以两种模式显示的视图..第一种:创建模式,第二种:编辑模式
在创建模式下,所有字段都是空的,我从视图中获取数据,用户填写并更新我的数据模型.
在视图模式下,我从我的数据模型中填充视图.
这是使用溢出的视图控制器完成的(因此我被迫使用委托).我希望我能更好地解释这一点,但这是我能做的最好的事情.截至目前,我正在使用代表团从A到B进行通信,从B到A进行通知.
如果我以两种方式使用授权,这是否可行?或者是否有任何复杂性我无法预见?
在我看来AFURLSessionManager,在设置taskWillPerformHTTPRedirection块时,适当的地方是,但我不确定处理它的最佳方法.
目前,在我的AFHTTPSessionManager子类中,我正在为所有请求全局设置重定向块,我知道我可以通过返回nil来阻止重定向:
- (void)setupRedirectBlock {
[self setTaskWillPerformHTTPRedirectionBlock:^NSURLRequest *(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request) {
return nil;
}];
}
Run Code Online (Sandbox Code Playgroud)
...但我只需要对特定任务执行此操作,并且似乎没有办法从任务本身获取此信息.
我想我正在寻找某种用户信息字典或者我可以用来设置一个标志告诉这个方法返回request或返回nil.目前,我似乎必须对客户端中的响应/请求URL进行字符串比较,因为它远离实际创建任务和路径的位置.
所以这就引出了一个问题,我是在与常规进行对抗,还是没有更好的方法来逐个任务地拦截AFNetworking 2.0重定向?
我有一个快速的功能来从主要包中获取本地化的应用程序名称localizedInfoDictionary以及一些后备情况.
private func defaultAppName() -> String {
var name: NSString = ""
// Check for a localized version of the CFBundleDisplayName
var mainBundle = NSBundle.mainBundle()
// EXC_BAD_ACCESS HERE, despite the optional
var mainBundleInfoDictionary: Dictionary<NSObject, AnyObject>? = mainBundle.localizedInfoDictionary
if let infoDictionary = mainBundleInfoDictionary {
name = infoDictionary["CFBundleDisplayName"] as NSString
if (name.length == 0) {
name = infoDictionary[kCFBundleNameKey] as NSString
}
}
if (name.length == 0) {
mainBundleInfoDictionary = mainBundle.infoDictionary
if let infoDictionary = mainBundleInfoDictionary {
name = infoDictionary["CFBundleDisplayName"] as …Run Code Online (Sandbox Code Playgroud) 我有一个简单的博客网站,其中首页索引是一个帖子列表,非截断和呈现与各个页面完全相同.
我有索引页面设置和工作:
---
layout: default
---
<div>
{% for post in site.posts %}
{% include post/post.html %}
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
其中post/post.html包含使用post变量的帖子布局,如下所示:
<article>
<header>
{% include post/title.html %}
{% include post/metadata.html %}
</header>
<div class="entry-content" itemprop="text">
{{ post.content }}
</div>
</article>
Run Code Online (Sandbox Code Playgroud)
现在,在特定的帖子页面上,我想重用这个包含布局,以便我可以保持我的代码DRY,所以我有帖子使用post.html布局(与posts/post.html上面不同):
---
layout: default
comments: true
---
{% include post/post.html %}
Run Code Online (Sandbox Code Playgroud)
但问题是包含文件需要post存在变量,例如post.content您访问内容的方式.
我试过了:
{% assign post = page %}
Run Code Online (Sandbox Code Playgroud)
这似乎是传递变量的权利,但是页面不是正确的,因为它呈现为降价字符串而不是页面上的html.
那么,我如何传递self- 或者需要什么 - 以便不需要为索引页面或帖子页面更改包含文件,从而共享相同的代码?
我有一个带有嵌套UIImageViews的UIScrollView.每个图像视图都可以缩放,但是当我尝试在放大图像时滚动内部滚动视图时,外部滚动视图将其拾取并切换图像视图.
如何防止这种情况发生,以便外部滚动视图仅在内部未缩放时滚动?
在xcode中,在使用gcc编译应用程序时,我想抛出编译时错误,如果NSZombieEnabled之类的东西用于发布版本,从而确保编译失败并且我不会意外地做一些愚蠢的事情.
我做了一些谷歌搜索,但无法弄清楚如果满足某个条件,编译器如何保释.当然这一定很容易,我只是找不到它?
我是以编程方式创建一个CALayer子类,它将一些像素噪声应用于自身.代码的工作原理是它在图层中呈现噪声,但图像上有一个奇怪的工件,我无法确定根本原因.
这是一个示例图像,noiseOpacity调高后可以使问题更加明显.

粉红色的盒子是UANoisyGradientLayer,一个CAGradientLayer具有以下位的子类:
@interface UANoisyGradientLayer ()
@property (nonatomic, retain) CIContext *noiseContext;
@property (nonatomic, retain) CIFilter *noiseGenerator;
@property (nonatomic, retain) CIImage *noiseImage;
@end
@implementation UANoisyGradientLayer
@synthesize noiseOpacity = _noiseOpacity, noiseImage;
- (id)init {
self = [super init];
if (self) {
self.noiseOpacity = 0.10;
self.noiseContext = [CIContext contextWithOptions:nil];
self.noiseGenerator = [CIFilter filterWithName:@"CIColorMonochrome"];
[self.noiseGenerator setValue:[[CIFilter filterWithName:@"CIRandomGenerator"] valueForKey:@"outputImage"] forKey:@"inputImage"];
[self.noiseGenerator setDefaults];
self.noiseImage = [self.noiseGenerator outputImage];
}
return self;
}
- (void)drawInContext:(CGContextRef)ctx {
[super drawInContext:ctx];
CGRect extentRect …Run Code Online (Sandbox Code Playgroud) objective-c ×5
ios ×4
iphone ×4
cocoa ×2
cifilter ×1
ciimage ×1
cocoa-touch ×1
core-image ×1
dry ×1
foundation ×1
gcc ×1
ios8 ×1
jekyll ×1
liquid ×1
nested ×1
networking ×1
noise ×1
nsbezierpath ×1
nsdictionary ×1
nsscrollview ×1
nsstring ×1
redirect ×1
shadow ×1
subclass ×1
swift ×1
uiscrollview ×1
variables ×1
xcode ×1