一些小知识点(4)

作者:Love@YR
链接:http://blog.csdn.net/jingqiu880905/article/details/52623403
请尊重原创,谢谢!

  1. 关于数组的两种写法:
NSArray *arr = @[@"1faffd",[NSNumber numberWithInt:2],@"fda"];
   NSLog(@"arr[2] is %@",arr[2]);

    NSString *strArr[3] = {@"fd",@"pop",@"fuaihf"};//此时用的花括号而不是中括号
    NSLog(@"strarr[1] is %p",strArr[1]);//打印地址
    NSString *str1 = strArr[1];
    NSLog(@"str1 is %@",str1);//打印值

。。。
2. 关于结构体 结构体指针 结构体数组
首先,结构体struct里不能放oc的类型,只能放c类型。如放NSString的类型会直接报arc forbids oc objects in struct
上个例子:

//.h里面
typedef struct Student{
    int age;
   const char *name;
}Stu;

//.m里面

//NSString 转化为 char *
 const char *a = [@"XIAOzhang" UTF8String];
 const char *b = [@"XIAOli" UTF8String];
 const char *c = [@"XIAOhuang" UTF8String];

 Stu stu0 = {18,a};
 Stu stu1 = {19,b};
 Stu stu2 = {20,c};

Stu *stu3 =&stu0;//结构体指针
stu3->age = 22;//只有指针能用-> 上面结构体的都用.
stu3->name=a;

//char * 转化为 NSString
 NSLog(@"stu0.name is %@",[NSString stringWithCString:stu0.name  encoding:NSUTF8StringEncoding]);//因%@只能打印oc对象,不能打印char *

  NSLog(@"name is %@",[NSString stringWithCString:stu3->name  encoding:NSUTF8StringEncoding]);

  Stu stu[3] = {stu0, stu1, stu2};//结构体数组
  NSLog(@"stu[1].name is %@",[NSString stringWithCString:stu[1].name  encoding:NSUTF8StringEncoding]);//打印XIAOli

这里为什么加上Stu stu3 =&stu0;而不是直接Stu *stu3;然后stu3->age=22; 因为如果只定义了一个结构体指针却没有给它赋值的话此时它为NULL,没有为其分配内存空间,不能直接指向age。还有一种可以stu3=(Stu )malloc(sizeof(Stu));来为其开辟内存空间
3. []的优先级比*高
  int *p1[10];//指针数组。 即装了10个int型指针的1个数组 先构成10个数组 数组的内容是指针
  int (*p2)[10];//数组指针 即指向装了10个int数据的1个数组 的指针 指针名为p2

int a [10]={…..};
int *p = a;//指向一个数组 这个数组有10个int元素

c语言定义字符串:
char str1[] = “HelloWorld”; // 通过字符数组来定义字符串”HelloWorld”,数组中每个存储单元存放一个字符
char *str2 = “HelloWorld”; // 通过字符指针来定义字符串”HelloWorld”,指针str2指向一个存放字符串”HelloWorld”的连续地址单元的首地址
所以char* name[];这个不是字符数组了 是字符指针数组
4. 如同结构体(struct)和共用体(union)一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:

enum weekday{sun,mon,tue,wed,thu,fri,sat};
enum weekday a,b,c;
//或者为:
enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b,c;
//或者为:
enum{sun,mon,tue,wed,thu,fri,sat}a,b,c;
typedef enum {
    AFEncapsulationBoundaryPhase = 1,
    AFHeaderPhase                = 2,
    AFBodyPhase                  = 3,
    AFFinalBoundaryPhase         = 4,
} AFHTTPBodyPartReadPhase;

AFHTTPBodyPartReadPhase _phase;
 _phase = AFHeaderPhase;

//或者:
typedef NS_ENUM(NSInteger, AppType){
    AppTypeIPhone = 1,
    AppTypeIPhoneTest = 2
};

//或者:
typedef enum {
   StockNameGangGu,
   StockNameABGu  
} StockNameStyle;
struct Student{
    int age;
   const char *name;
};
typedef struct Student Stu;
Stu stu0;

//或者为:
typedef struct Student{
    int age;
   const char *name;
}Stu;
Stu stu0;

//或者为:
typedef struct Student{
    int age;
   const char *name;
}Stu stu0, *stu3;

关于typedef:http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html
5. 微信开发者工具在哪儿?-在微信公众平台左侧栏最下方“开发”-点击“开发者工具”-右侧web开发者工具,进入页面,点击web开发者工具文档的链接-下载地址下载。可电脑端模拟移动端微信调试。

小程序的web 开发者工具下载地址:
https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=1474644089359
小程序的简易教程:
https://mp.weixin.qq.com/debug/wxadoc/dev/?t=1474974350348

小程序教程:
http://www.helloxcx.com
。。。。。。。
6. 关于mac下 web service的配置:
http://www.jianshu.com/p/d006a34a343f
http://jingyan.baidu.com/article/67508eb434539f9cca1ce4da.html

跟着第一篇文章一步一步做,如果发现某个文件编辑失败,可能是路径写错如etc写成ect,可能是没有加sudo,有时强制退出可能导致生成多个临时文件,可以进行Recover恢复原始文件。

vi编辑命令:
大写 I:插入
esc退出
:wq 退出保存 当前如果在其他模式需要先esc一下
:q!退出不保存
ctr+v visual block模式 可上下选中
另:多行注释 不显示#行需再查

php启动然后测试验证那块可以在系统根级目录去创建一个test.php访问即可测试php是否可用,可以显示php的版本号。

最后的结果就是在浏览器输入:
http://127.0.0.1http://localhost
http://127.0.0.1/~usernamehttp://localhost/~username
https://local.server.com/
(这个试了不行,可以用https://127.0.0.1 访问)
都显示It works!

系统级根目录为:/Library/WebServer/Documents
用户级目录:/Users/username/Sites/
( username 为当前用户名)
7. mac 下mysql的安装:
下载 mysql community server
http://dev.mysql.com/downloads/mysql/

解压完tar.gz文件后把文件夹移动到/usr/local/mysql目录
参考:http://www.widlabs.com/article/mac-os-x-install-mysql-with-tar-gz
(如果打不开可以参考:http://blog.csdn.net/u014351782/article/details/49865125 是同一篇文章)
中间会生成一个临时密码
再参考:http://www.imooc.com/article/8655
输入mysql -u root -p 命令后输入临时密码
然后修改密码,输入sql语句: SET PASSWORD = PASSWORD(‘EM@111’);注意括号为英文,分号不要漏掉。会提示:Query OK, 0 rows affected, 1 warning (0.00 sec) 修改成功。

下载workbench:http://dev.mysql.com/downloads/workbench/
安装dmg后从launchpad打开, 输入修改后的密码。

参考:http://blog.csdn.net/easonlv/article/details/51321068
参考:http://www.360doc.com/content/15/0712/23/12146850_484530531.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值