在这篇文章中,我们将带领您了解何时在iPhone中发布NSString的全貌,包括ios什么时候发布的相关情况。同时,我们还将为您介绍有关iPad/iPhone–NSStringdrawInRect没
在这篇文章中,我们将带领您了解何时在iPhone中发布NSString的全貌,包括ios什么时候发布的相关情况。同时,我们还将为您介绍有关iPad / iPhone – NSString drawInRect没有自动换行、iphone – NSLocalizedString:为什么genstrings会为我的格式说明符添加1 $和2 $?、iphone – NSString initWithData返回null、iphone – NSString stringWithFormat问题的知识,以帮助您更好地理解这个主题。
本文目录一览:- 何时在iPhone中发布NSString(ios什么时候发布)
- iPad / iPhone – NSString drawInRect没有自动换行
- iphone – NSLocalizedString:为什么genstrings会为我的格式说明符添加1 $和2 $?
- iphone – NSString initWithData返回null
- iphone – NSString stringWithFormat问题
何时在iPhone中发布NSString(ios什么时候发布)
-(NSMutableArray *) getPaises { NSMutableArray * paises; paises = [[NSMutableArray alloc] init]; while( get new row ) { Nsstring *aPais = [Nsstring stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)]; [paises addobject:aPais]; } return paises; }
我不会发布aPais,因为如果我这样做,应用程序崩溃.我不知道在使用它之后是否应该释放它,如果是的话,我该怎么做呢?刚释放NSMutableArray就够了?还是要遍历它并释放每个对象?
如果我不需要释放它,谁负责释放?
解决方法
-(NSMutableArray *) getPaises { NSMutableArray * paises; paises = [[[NSMutableArray alloc] init] autorelease]; while( get new row ) { Nsstring *aPais = [[Nsstring alloc] initWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)]; [paises addobject:aPais]; [aPais release]; } return paises; }
综上所述:
> [[Nsstring alloc] initWith …] – >你必须释放或自动释放.
> [Nsstring stringWith …] – >无需释放.
– 编辑:添加了自动发送,当你返回它.当你返回一个对象时,如果你已经分配了& init’d,那么总是自动释放它.
iPad / iPhone – NSString drawInRect没有自动换行
- (void) drawRect:(CGRect)rect { Nsstring* text = @"asdf asdf asdf asdf asdf asdf asdf"; CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context,[[UIColor clearColor] CGColor]); CGContextFillRect(context,rect); CGContextSetTextDrawingMode(context,kCGTextFillstrokeClip); CGContextSetFillColorWithColor(context,[[UIColor whiteColor] CGColor]); CGContextSetstrokeColorWithColor(context,[[UIColor blackColor] CGColor]); CGContextSetShouldSmoothFonts(context,YES); UIFont* font = [UIFont fontWithName:@"ArialRoundedMTBold" size:20.0f]; CGSize textMaxSize = CGSizeMake(rect.size.width - 20.0f,rect.size.height); CGSize textSize = [text sizeWithFont:font constrainedToSize:textMaxSize lineBreakMode:UILineBreakModeWordWrap]; CGRect textRect = CGRectMake(10.0f,10.0f,textSize.width,textSize.height); [text drawInRect:textRect withFont:font]; [text drawInRect:textRect withFont:font lineBreakMode:UILineBreakModeWordWrap]; [text drawInRect:textRect withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter]; }
[text drawInRect]没有像我期望的那样包装文本. TextSize是正确计算的,但绘制只是渲染一行.
更新:
解决了.
设置CGContextSetTextDrawingMode(context,kCGTextFillstrokeClip);无论选择何种UILineBreak模式,都会导致文本被剪辑.设置CGContextSetTextDrawingMode(context,kCGTextFillstroke);解决了这个问题.
解决方法
How do I get -[NSString sizeWithFont:forWidth:lineBreakMode:] to work?
iphone – NSLocalizedString:为什么genstrings会为我的格式说明符添加1 $和2 $?
/* No comment provided by engineer. */ "%@%i" = "%1$@%2$i"; /* No comment provided by engineer. */ "%@: %i" = "%1$@: %2$i"; /* No comment provided by engineer. */ "%@" = "%@";
我没有与其他应用程序有这个问题,因为你可以看到它不一致.但它似乎并不是随机的,因为当我在同一个类文件上再次运行genstrings时,1 $等等总是在同一个地方.
我可以让它们进入并且字符串使用正确的格式,但我已经手动删除它们,因为我不确定$会做什么.不得不经历并手动更新字符串是令人讨厌的(加上我最终可能会错过一个).
我在想它可能是文本编码问题?或者我可以安全地将它们留在我的琴弦中然后忽略它们吗?
解决方法
换句话说,它们可以安全地进入或移除,并且它们可以派上用场,以便将自然的翻译翻译成其他语言.
iphone – NSString initWithData返回null
Nsstring *result = [[Nsstring alloc] initWithData:data encoding:NSUTF8StringEncoding]
结果字符串结果为空。然而,如果我使用NSASCIIStringEncoding,我确实获得了适当的字符串,尽管unicode字符按预期的方式乱码。服务器的Content-Type标头没有指定UTF-8编码,但是我已经尝试了一些类似场景的不同网站,并且字符串转换也是很好的。似乎问题只适用于给定的Web服务,但我不知道为什么。
在旁注中,是从API的良好做法中拉取网页和数据,即缓冲数据,转换成字符串,然后操作字符串?
非常感激!
解决方法
我的猜测是,你的数据通常是ASCII,它总是正确地解析为UTF-8,但是你有时会试图解析实际上编码在ISO 8859-1或Windows codepage 1252中的数据。这样的数据一般都是ASCII,但是0-127范围外的一些字节定义了ASCII。 UTF-8将期望这样的字节在指定的范围序列内形成一系列代码单元,但是在其他编码中,任何字节,无论其值如何,都是一个完整的字符。尝试将非ASCII非UTF-8数据解释为UTF-8将几乎总是会导致错误的结果(错误的字符)或根本没有结果(无法解码;解码器返回nil),因为数据从未以UTF格式编码-8在第一位。
您应该首先尝试使用UTF-8,如果失败,请使用ISO 8859-1。如果您让用户检索任何网页,您应该让它们更改您用于解码数据的编码,以防发现实际上是8859-9或codepage-1252或其他8位编码。
如果您正在从特定服务器下载数据,特别是如果您对该服务器上运行的内容有影响,则应使其提供准确的Content-Type标头和/或修复导致其提供文本的错误那不是UTF-8。
iphone – NSString stringWithFormat问题
这就是我所拥有的
[Nsstring stringWithFormat:@"%8@: %.6f",e,v]
其中e是来自其他地方的Nsstring,v是浮点数.
我想要的是输出这样的东西:
Grapes: 20.3 Pomegranates: 2.5 Oranges: 15.1
我得到的是
Grapes:20.3 Pomegranates:2.5 Oranges:15.1
如何修复格式以执行此类操作?
解决方法
NSDictionary* fruits = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithFloat:20.3],@"Grapes",[NSNumber numberWithFloat:2.5],@"Pomegranates",[NSNumber numberWithFloat:15.1],@"Oranges",nil]; NSUInteger longestNameLength = 0; for (Nsstring* key in [fruits allKeys]) { NSUInteger keyLength = [key length]; if (keyLength > longestNameLength) { longestNameLength = keyLength; } } for (Nsstring* key in [fruits allKeys]) { NSUInteger keyLength = [key length]; NSNumber* object = [fruits objectForKey:key]; NSUInteger padding = longestNameLength - keyLength + 1; NSLog(@"%@",[Nsstring stringWithFormat:@"%@:%*s%5.2f",key,padding," ",[object floatValue]]); }
输出:
Oranges: 15.10 Pomegranates: 2.50 Grapes: 20.30
今天关于何时在iPhone中发布NSString和ios什么时候发布的讲解已经结束,谢谢您的阅读,如果想了解更多关于iPad / iPhone – NSString drawInRect没有自动换行、iphone – NSLocalizedString:为什么genstrings会为我的格式说明符添加1 $和2 $?、iphone – NSString initWithData返回null、iphone – NSString stringWithFormat问题的相关知识,请在本站搜索。
本文标签: