我的小应用程序越来越庞大,我正在寻找关于视图控制器和导航控制器的管理/所有权的一些最佳实践建议.
这就是我现在正在做的事情:
+sharedController类似的方法全局访问.应用程序中希望推送新视图控制器的每个视图控制器基本上都这样做:
NextViewController * nextViewController = [[NextViewController alloc] init];
[[[AppController sharedController] navigation] pushViewController:nextViewController ...];
[nextViewController release];
通过这种方式,所有"叶子"视图都负责创建下一个视图并推送它,导航控制器位于每个人都可以到达的地方.
但我自己做了这个.由于通过视图控制器导航是一个非常重要的架构,我想知道是否有人在这里有更好或更周到的方法.
谢谢.
(就问题而言,这确实是一个双重打击,因为确实存在两个有问题的问题,但它们有点属于一起.)
第一个问题:
我如何使用POST上传文件(我有一个包含文件内容的NSData对象),同时在一个NSProgressIndicator?中显示上传进度?就像可以执行bytesReceived一样NSURLDownload,但这次跟踪已经使用POST发送了多少字节.
第二个问题:
虽然我有这个NSData数组,但我将使用下面的代码发送NSData数组.在这里,它让我困惑如何告诉它,例如,POST值'file'是NSData对象.NSDictionary可能会在这里完成这项工作,但我现在无法访问我的电脑和可爱的Apple Docs:
NSMutableURLRequest* post = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:@"http://yourdomain.com/post.php"]];
[post setHTTPMethod: @"POST"];
[post setHTTPBody:myFileNSData];
NSURLResponse* response;
NSError* error;
NSData* result = [NSURLConnection sendSynchronousRequest:post returningResponse:&response error:&error];
NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]);
Run Code Online (Sandbox Code Playgroud)
我很感激任何帮助.
嗨我需要更改mouseMove属性onMouseMove但我无法访问myfunc对象,因为这是指el而不是父亲!!
function myfunc (el) {
this.el = el;
this.mousemove = false;
el.onmousemove = function(){
this.mousemove = true;
};
}
Run Code Online (Sandbox Code Playgroud) 寻找关于此特定行为的文档引用或名称或链接,这类似于可选绑定,但未在文档的该部分中讨论.
我可以使用==运算符测试一个可选项,并测试它们nil及其实际值,而不进行任何显式解包:
var toggle: Bool? = nil
if (toggle == true || toggle == nil) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
这可以根据你的需要进行编译和工作,但这里发生的事情是我没有必要toggle!明确地解包; 在==已安全做了我.
这很方便,但是当我注意到它时,我承认有点惊讶.这只是默认==实现的行为吗?或者是语言中发生的其他事情?感谢您的见解.
在一个简单的C程序上工作我坚持使用if测试:
int line_number = 0;
if ((line_number >= argv[2]) && (line_number <= argv[4]))
Run Code Online (Sandbox Code Playgroud)
gcc说:
cp.c:25: warning: comparison between pointer and integer cp.c:25: warning: comparison between pointer and integer
我该怎么做才能正确检查我想要处理的行数范围?
我在UIImageView中有一个PNG文件,旁边有一个EAGLView,它显示同一图像(长故事)作为纹理的延续,由同一个原始PNG雕刻而成.关键是,这些应该完美匹配的图像实际上具有稍微不同的色彩饱和度.
通常我会责怪我在GL中处理PNG纹理加载,但是当我将预览(使用PNG)保持到iPhone模拟器时,它就是GL的亮点,而UIImageView则错了!它采取了图像,使它变得更加饱和.图像视图不透明,100%alpha.
我在一个干净的UIImageView上用另一个PNG文件验证了这个,当放在预览旁边时.
谁知道怎么了?
我有一个整数val.
data[0]=0;
data[1]=0;
data[2]=(val>>8)%256;
data[3]=val%256;
Run Code Online (Sandbox Code Playgroud)
我该如何做对位?如何从char数组中获取int?
我正在使用UIView动画在两个视图之间交叉淡入淡出.我注意到以下令人惊讶的事实:
如果我在相同的位置有两个相同的视图,并且我在它们之间设置交叉淡入淡出动画(例如,在同一动画中,将动画从0.0到1.0的动画,同时从1.0到0.0,在同一动画中)在动画中,可见结果在动画过程中略微低于不透明 - 这是一个明显的神器,可以通过在交叉渐变视图后面放置一些其他视图来验证(在动画再次被遮挡之前,它会在动画期间短暂可见).
我希望(使用任何动画时序曲线)完美配对0-> 1和1-> 0 alpha转换总是加起来为1.0的净alpha值,并且在这个测试情况下,我永远不会看到任何明显的变化阿尔法,但我做.
知道这里发生了什么吗?我可以用这个"修复"来解决这个问题,但我最感兴趣的是在混合中我在概念上缺少的东西.
谢谢!
您#import对头文件有何看法?
如果我导入:
#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
Run Code Online (Sandbox Code Playgroud)
还有更多的标题,偶尔只使用它们,这是浪费吗?它以任何方式减慢了我的应用程序吗?更重要的是,它是否会增加我的应用程序的大小?
谢谢.
我通过扩展UIView创建一个自定义StyleLabel,它提供了特定类型字符串的链接.我已成功实现此功能.
我使用TableViewCell这个标签连同UILabel.i设置的UILabel与StyleLabel背景色设置为clearColor.UILabel工作正常,但StyleLabel在blackColor中显示背景.
我不确定以下代码有什么问题.
这是CustomLabel类的drawRect方法
-(void) drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextClearRect(ctx, rect);
[[UIColor clearColor] setFill];
CGContextAddRect(ctx, rect);
CGContextDrawPath(ctx, kCGPathFill);
[_text drawText:ctx];
}
Run Code Online (Sandbox Code Playgroud)
谢谢Sasikumar
iphone ×5
c ×2
alpha ×1
animation ×1
cocoa ×1
cocoa-touch ×1
coding-style ×1
color-space ×1
file-upload ×1
javascript ×1
nsurlrequest ×1
objective-c ×1
oop ×1
opengl-es ×1
operators ×1
optional ×1
png ×1
post ×1
swift ×1
uiimageview ×1
uiview ×1