一些小知识点(4)

来源:互联网 发布:java 当前时间减1小时 编辑:程序博客网 时间:2024/05/22 05:24

作者: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.1 或 http://localhost
http://127.0.0.1/~username 或 http://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

1 0
原创粉丝点击