生命之中的最大错误在于:终日担心犯错误。— 爱尔伯特·哈伯德 (Elbert Hubbard 1856-1915),《笔记》
You can do exactly that via the various sizeWithFont: methods in NSString UIKit Additions. In your case the simplest variant should suffice (since you don't have multi-line labels):
What you want is in UIStringDrawing.h
摘自 http://stackoverflow.com/questions/1324379/how-to-calculate-the-width-of-a-text-string-of-a-specific-font-and-font-size
NSString *someString = @"Hello World";
UIFont *yourFont = // [UIFont ...]
CGSize stringBoundingBox = [someString sizeWithFont:yourFont];
UIFont *yourFont = // [UIFont ...]
CGSize stringBoundingBox = [someString sizeWithFont:yourFont];
What you want is in UIStringDrawing.h
CGFloat actualFontSize = 12.0;
CGSize sizeNeeded = [plainText sizeWithFont:[UIFont systemFontOfSize:12.0] minFontSize:12.0
actualFontSize:&actualFontSize forWidth:widthOfMyLabel lineBreakMode:UILineBreakModeTailTruncation];
CGSize sizeNeeded = [plainText sizeWithFont:[UIFont systemFontOfSize:12.0] minFontSize:12.0
actualFontSize:&actualFontSize forWidth:widthOfMyLabel lineBreakMode:UILineBreakModeTailTruncation];
摘自 http://stackoverflow.com/questions/1324379/how-to-calculate-the-width-of-a-text-string-of-a-specific-font-and-font-size
碰到这样的错误:JSONValue failed. Error is: Unescaped control character [0x09]
有如下解决方案:
Call this method with passing your output string like this
http://stackoverflow.com/questions/6966349/json-parse-error
有如下解决方案:
-(NSString *)removeUnescapedCharacter:(NSString *)inputStr
{
NSCharacterSet *controlChars = [NSCharacterSet controlCharacterSet];
NSRange range = [inputStr rangeOfCharacterFromSet:controlChars];
if (range.location != NSNotFound)
{
NSMutableString *mutable = [NSMutableString stringWithString:inputStr];
while (range.location != NSNotFound)
{
[mutable deleteCharactersInRange:range];
range = [mutable rangeOfCharacterFromSet:controlChars];
}
return mutable;
}
return inputStr;
}
{
NSCharacterSet *controlChars = [NSCharacterSet controlCharacterSet];
NSRange range = [inputStr rangeOfCharacterFromSet:controlChars];
if (range.location != NSNotFound)
{
NSMutableString *mutable = [NSMutableString stringWithString:inputStr];
while (range.location != NSNotFound)
{
[mutable deleteCharactersInRange:range];
range = [mutable rangeOfCharacterFromSet:controlChars];
}
return mutable;
}
return inputStr;
}
Call this method with passing your output string like this
NSString *output = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"yourUrlString"] encoding:NSUTF8StringEncoding error:nil];
output = [self removeUnescapedCharacter:output];
output = [self removeUnescapedCharacter:output];
http://stackoverflow.com/questions/6966349/json-parse-error
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"1.gif" ofType:nil];
SCGIFImageView *gifImageView = [[[SCGIFImageView alloc] initWithGIFFile:filePath] autorelease];
gifImageView.frame = CGRectMake(0, 0, gifImageView.image.size.width, gifImageView.image.size.height);
gifImageView.center = self.view.center;
[self.view addSubview:gifImageView];
SCGIFImageView *gifImageView = [[[SCGIFImageView alloc] initWithGIFFile:filePath] autorelease];
gifImageView.frame = CGRectMake(0, 0, gifImageView.image.size.width, gifImageView.image.size.height);
gifImageView.center = self.view.center;
[self.view addSubview:gifImageView];
gifImageView.image.size就是gif的宽高了
我们在抱怨百度K站的同时要思考百度为什么要K这个站,只有弄清楚了原因才能做好应对之策。
淘宝客创造了大量的个人站长收入神话,一个单页网站月入几万已经不是什么天方夜潭。随着上数用户群和淘宝交易额的爆发式增长,和做淘宝客的个人站长收入所吸引,造成了大量的懂或者不懂网站建设及CEO技术的人加入淘宝客这个行业。加上淘宝开放平台API的开放,使淘宝客网站大量采集淘宝商品页面,其结果是同一件商品,同样的内容,没有经过任何更改的情况下在互联网上形成了成千上万的雷同页面。这是所有搜索引擎最反感的,因为它严重影响了用户体验,也对搜索引擎的工作造成了压力。 搜索引擎为了改善用户体验和自身工作环镜的出发点考虑,对这些网站K站就理所当然了,弄明白了原因所在,我们需要对症下药,解决问题。
一 屏蔽掉所有纯API页面。对那种纯API采集得到的页面进行屏蔽,可能在短时间会有一点的损失,但是从长时间来看是利大于弊的。大家都知道淘宝的商品页面是不稳定的,经常被下架或者卖家不参加淘宝客推广后,你这个页面就不能在你的网站显示,这样的结果是你的网站页面不稳定,搜索引擎可能经常检测到被收录的页面从你的网站消失无法访问。还有一点是重复页面太多,成千上万的淘宝客网站都在采集,蜘蛛爬行至你的网站时,发现数据库里已经有大量相同的数据。所以我们屏蔽掉这部分页面,不让蜘蛛抓取,只让用户能正常访问。
二 增加搜索引擎的收录。在屏蔽了API页面后,蜘蛛能爬行的页面就变的很少了,这个时间我们需要增加大量可以让蜘蛛可以收录的页面。 每天坚持发至少一篇原创文章,要显示在首页的,这样蜘蛛进入你的网站时能第一时间知道你这个网站有原创内容,不会造成蜘蛛来了发现全是转载和伪原创,带来不好的第一印象。内页新闻资讯页面可以多放几篇伪原创文章,增加收录的同时做好站内链接引导蜘蛛和用户访问更多的页面。最好是用相关联的关键词作为引导。
增加淘宝商品分类列表页面和店铺分类列表页面的收录量。这时我们可以增加大量引导页面,关键词你可以自己设置,如热门店铺,全部店铺,皇冠店铺等,增加这类页面的好处是,这种页面的雷同率会比较少,因为关键词是你自己定的,采集来的数据千差万别,而且这家店铺或产品被关闭和下架之后还以其它店铺和产品补上来,不会造成页面无法访问。
三 不要到处张贴牛皮癣。现在的搜索引擎对那种签名,论坛贴内外链已经没有什么效果了,除非这个论坛权重特别高,而且出站链接很少。但以经验判断这种站也是不可能留下链接的。就算当时留下也可能在不久的将来被删,所以最好不要去做这种无用功。被百度收录后的外链然后被删了,这样对你网的权重影响更大。
建议不要用自已做站的域名去百度发广告,很多人认为去百度发广告很有效,收录快。这种想法是错的,一个权重不高的域名经常在百度发广告,你的这个域名只会给百度更差的印象。这是作者测试过的,有一个域名进了百度的黑名单后半年内在百度贴吧,知道等都无法显示出来。 外链不在多,在于精。你每天做一个高权重的外链比发100个垃圾外链强的多。
作者:寒江 转载请注明来源 百茂网
淘宝客创造了大量的个人站长收入神话,一个单页网站月入几万已经不是什么天方夜潭。随着上数用户群和淘宝交易额的爆发式增长,和做淘宝客的个人站长收入所吸引,造成了大量的懂或者不懂网站建设及CEO技术的人加入淘宝客这个行业。加上淘宝开放平台API的开放,使淘宝客网站大量采集淘宝商品页面,其结果是同一件商品,同样的内容,没有经过任何更改的情况下在互联网上形成了成千上万的雷同页面。这是所有搜索引擎最反感的,因为它严重影响了用户体验,也对搜索引擎的工作造成了压力。 搜索引擎为了改善用户体验和自身工作环镜的出发点考虑,对这些网站K站就理所当然了,弄明白了原因所在,我们需要对症下药,解决问题。
一 屏蔽掉所有纯API页面。对那种纯API采集得到的页面进行屏蔽,可能在短时间会有一点的损失,但是从长时间来看是利大于弊的。大家都知道淘宝的商品页面是不稳定的,经常被下架或者卖家不参加淘宝客推广后,你这个页面就不能在你的网站显示,这样的结果是你的网站页面不稳定,搜索引擎可能经常检测到被收录的页面从你的网站消失无法访问。还有一点是重复页面太多,成千上万的淘宝客网站都在采集,蜘蛛爬行至你的网站时,发现数据库里已经有大量相同的数据。所以我们屏蔽掉这部分页面,不让蜘蛛抓取,只让用户能正常访问。
二 增加搜索引擎的收录。在屏蔽了API页面后,蜘蛛能爬行的页面就变的很少了,这个时间我们需要增加大量可以让蜘蛛可以收录的页面。 每天坚持发至少一篇原创文章,要显示在首页的,这样蜘蛛进入你的网站时能第一时间知道你这个网站有原创内容,不会造成蜘蛛来了发现全是转载和伪原创,带来不好的第一印象。内页新闻资讯页面可以多放几篇伪原创文章,增加收录的同时做好站内链接引导蜘蛛和用户访问更多的页面。最好是用相关联的关键词作为引导。
增加淘宝商品分类列表页面和店铺分类列表页面的收录量。这时我们可以增加大量引导页面,关键词你可以自己设置,如热门店铺,全部店铺,皇冠店铺等,增加这类页面的好处是,这种页面的雷同率会比较少,因为关键词是你自己定的,采集来的数据千差万别,而且这家店铺或产品被关闭和下架之后还以其它店铺和产品补上来,不会造成页面无法访问。
三 不要到处张贴牛皮癣。现在的搜索引擎对那种签名,论坛贴内外链已经没有什么效果了,除非这个论坛权重特别高,而且出站链接很少。但以经验判断这种站也是不可能留下链接的。就算当时留下也可能在不久的将来被删,所以最好不要去做这种无用功。被百度收录后的外链然后被删了,这样对你网的权重影响更大。
建议不要用自已做站的域名去百度发广告,很多人认为去百度发广告很有效,收录快。这种想法是错的,一个权重不高的域名经常在百度发广告,你的这个域名只会给百度更差的印象。这是作者测试过的,有一个域名进了百度的黑名单后半年内在百度贴吧,知道等都无法显示出来。 外链不在多,在于精。你每天做一个高权重的外链比发100个垃圾外链强的多。
作者:寒江 转载请注明来源 百茂网
MBProgressHUD *mb = [MBProgressHUD showHUDAddedTo:self.scroller animated:YES];
[mb setLabelText:NSLocalizedString(@"加载大图..",nil)];
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(concurrentQueue, ^{
NSURL *url2 = [NSURL URLWithString:url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url2];
//指定来源
[request setValue:@"http://www.aslibra.com/" forHTTPHeaderField:@"Referer"];
//[request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22" forHTTPHeaderField:@"User-Agent"];
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
dispatch_async(dispatch_get_main_queue(), ^{
UIImage *img = [UIImage imageWithData:data];
[MBProgressHUD hideHUDForView:self.scroller animated:YES];
});
});
[mb setLabelText:NSLocalizedString(@"加载大图..",nil)];
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(concurrentQueue, ^{
NSURL *url2 = [NSURL URLWithString:url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url2];
//指定来源
[request setValue:@"http://www.aslibra.com/" forHTTPHeaderField:@"Referer"];
//[request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22" forHTTPHeaderField:@"User-Agent"];
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
dispatch_async(dispatch_get_main_queue(), ^{
UIImage *img = [UIImage imageWithData:data];
[MBProgressHUD hideHUDForView:self.scroller animated:YES];
});
});
使用if标签来定义复杂的条件判断。
If标签(条件判断标签)
闭合 非闭合标签
属性 condition(必须):要判断的条件
elseif标签(条件判断标签)
闭合 闭合标签
属性 condition(必须):要判断的条件
else标签(条件判断标签)
闭合 闭合标签
属性 无
用法示例:
在condition属性中可以支持eq等判断表达式,同上面的比较标签,但是不支持带有”>”、”<”等符号的用法,因为会混淆模板解析,所以下面的用法是错误的:
必须改成:
除此之外,我们可以在condition属性里面使用php代码,例如:
condition属性可以支持点语法和对象语法,例如:
自动判断user变量是数组还是对象
或者知道user变量是对象
由于if标签的condition属性里面基本上使用的是php语法,尽可能使用判断标签和Switch标签会更加简洁,原则上来说,能够用switch和比较标签解决的尽量不用if标签完成。因为switch和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF标签仍然无法满足要求的话,可以使用原生php代码或者PHP标签来直接书写代码。
原文:http://doc.thinkphp.cn/manual/if.html
If标签(条件判断标签)
闭合 非闭合标签
属性 condition(必须):要判断的条件
elseif标签(条件判断标签)
闭合 闭合标签
属性 condition(必须):要判断的条件
else标签(条件判断标签)
闭合 闭合标签
属性 无
用法示例:
<if condition="($name eq 1) OR ($name gt 100) "> value1
<elseif condition="$name eq 2"/>value2
<else /> value3
</if>
<elseif condition="$name eq 2"/>value2
<else /> value3
</if>
在condition属性中可以支持eq等判断表达式,同上面的比较标签,但是不支持带有”>”、”<”等符号的用法,因为会混淆模板解析,所以下面的用法是错误的:
<if condition="$id < 5 ">value1
<else /> value2
</if>
<else /> value2
</if>
必须改成:
<if condition="$id lt 5 ">value1
<else /> value2
</if>
<else /> value2
</if>
除此之外,我们可以在condition属性里面使用php代码,例如:
<if condition="strtoupper($user['name']) neq 'THINKPHP'">ThinkPHP
<else /> other Framework
</if>
<else /> other Framework
</if>
condition属性可以支持点语法和对象语法,例如:
自动判断user变量是数组还是对象
<if condition="$user.name neq 'ThinkPHP'">ThinkPHP
<else /> other Framework
</if>
<else /> other Framework
</if>
或者知道user变量是对象
<if condition="$user:name neq 'ThinkPHP'">ThinkPHP
<else /> other Framework
</if>
<else /> other Framework
</if>
由于if标签的condition属性里面基本上使用的是php语法,尽可能使用判断标签和Switch标签会更加简洁,原则上来说,能够用switch和比较标签解决的尽量不用if标签完成。因为switch和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF标签仍然无法满足要求的话,可以使用原生php代码或者PHP标签来直接书写代码。
原文:http://doc.thinkphp.cn/manual/if.html
引用
......
ld: 64 duplicate symbols for architecture armv7s
ld: 64 duplicate symbols for architecture armv7s
加入admob后打包,可能碰到上面的问题
引用
f you're using the Admob v6.2 library make sure you're NOT using the -all_load linker flag, use the -ObjC linker flag instead.
参考这个,"Other linker Flags"只用 -ObjC 就可以,不用加两个




