It's a bug of simulator 5. After UIAlertView dismissed, press CMD+SHIFT+H, the bug occurs.
In fact, it doesn't occur in physical devices. So don't panic
原文:http://stackoverflow.com/questions/12924146/cfxpreferencessearchlistsource-trylock
程序发布后,发现一个bug,需要在自己手机调试时,出现:a valid provisioning profile for this executable was not found错误.
原来是因为发布的时候把schema里的"Build Configuration"改成了release。而release对应的provision是用发布证书的。把"Build Configuration"改成了debug就好了。
所以,应该创建两个schema就好了。一个给debug,一个给release。如果有需求,可以再给test弄一个。
//
// main.m
// 盖世天地
//
// Created by Ibokan on 12-12-21.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
//void StrClear(char *str);
//void StrClear(char *str)
//{
// char *s=str;
// while(*s)
// {
// *s=NULL;
// s++;
// }
//}
int main (int argc, const char * argv[])
{
@autoreleasepool {
int temp=100902304;//随机的一个小于20亿的数字。
char *a[19]={"零","一","二","三","四","五","六","七","八","九","十","百","千","万","十万","百万","千万","亿","十亿"};//输出时候用的。
char s[30]; //求长度时候用的。
sprintf(s, "%d", temp);//整型转化为字符串。
int len=strlen(s);//随机数字的长度。
int i=0;//从个位数字开始。
char *result[100];//存储每位数字结果的字符串数组。
//循环从个位数开始把结果存入result数组中。
int flag=0;//判断万的时候。
int flag2=0;//判断亿的时候。
while (len>0) {
//生成个位数字并放在结果数组中。
if (i==0) {
result[i]=a[temp%10];//13651281564
}
//判断不是个位数的时候。需要一个拼接并放到数组中。
if (i>0) {
char *res=malloc(100);//字符串拼接的时候用的。
char *res2=malloc(100);//字符串拼接的时候用的。
strcpy(res2, "");
strcpy(res, "");
strcat(res, a[temp%10]);
strcpy(res2, res);
if ((strcmp(res, "零")!=0)&&i<8) {
if (flag!=1) {
strcat(res2, a[9+i]);
}
if (flag==1) {//如果前面有万,后面判断的时候把万去掉。
strcat(res2, a[5+i]);
}
if (strstr(a[9+i], "万")) {
flag=1;
}
}
else {
if ((strcmp(res, "零")!=0)) {
if (flag2!=1) {
strcat(res2, a[9+i]);
}
if (flag2==1) {//如果前面有亿,后面判断的时候把万去掉。
strcat(res2, a[1+i]);
}
if (strstr(a[9+i], "亿")) {
flag2=1;
}
}
}
result[i]=res2;
printf("%s======\n",result[i]);//此时输出的是正常的:五十,二百,四千。
}
i++;
len--;
temp=temp/10;
}
if (i==1) {
printf("%s",result[i-1]);
}
else{
//输出结果。
while(i>1) {
if ((strcmp(result[i-1], "零")==0)&&(strcmp(result[i-2], "零")!=0)) {
printf("%s",result[i-1]);
}
else if((strcmp(result[i-1], "零")!=0)) {
printf("%s",result[i-1]);
}
i--;
}
if ((i==1)&&(strcmp(result[0], "零")!=0)) {
printf("%s",result[0]);
}
}
}
return 0;
}
function MoneyToChinese(n) { //金额大写转换函数
for(i=n.length-1;i>=0;i--)
{
n = n.replace(",","")//替换tomoney()中的“,”
n = n.replace(" ","")//替换tomoney()中的空格
}
//Num = Num.replace("¥","")//替换掉可能出现的¥字符
if(isNaN(n)) { //验证输入的字符是否为数字
alert("请检查小写金额是否正确");
return;
}
var unit = "千百拾亿千百拾万千百拾元角分", str = "";
n += "00";
var p = n.indexOf('.');
if (p >= 0)
n = n.substring(0, p) + n.substr(p+1, 2);
unit = unit.substr(unit.length - n.length);
for (var i=0; i < n.length; i++){
str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i);
}
var str1= str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
while(str1.search("千拾") != -1){
str1 = str1.replace("千拾","千壹拾");
}
while(str1.search("零拾") != -1){
str1 = str1.replace("零拾","零壹拾");
}
return str1;
}