【iOS】Stanford iOS7 Assignment - Matchismo

版权声明:本文为博主原创文章,如需转载请注明出处。

Github地址:https://github.com/yoferzhang/Matchismo

Matchismo

Stanford iOS7 Assignment

Use Xcode 7.3 AND OS X EI Captian 10.11.4

更新时间:2016.04.22

简单牌面翻转

修改Main.storyboard:设置背景色,添加一个Button,添加背景图和前景图。设置TitleA♣︎。并在ViewController.m中添加一个方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (IBAction)touchCardButton:(UIButton *)sender {
if ([sender.currentTitle length]) {
[sender setBackgroundImage:[UIImage imageNamed:@"CardBack"]
forState:UIControlStateNormal];
[sender setTitle:@"" forState:UIControlStateNormal];
} else {
[sender setBackgroundImage:[UIImage imageNamed:@"CardFront"]
forState:UIControlStateNormal];
[sender setTitle:@"A♣︎" forState:UIControlStateNormal];
}

// update flipCount in there
// because every time touch the button, this method will be call
self.flipCount++;
}

【C语言】结构体内存对齐模式

版权声明:本文为博主原创文章,如需转载请注明出处。

  结构体内存对齐模式各种情况代码详解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>

struct A
{
int a; // 此时结构体占用4个字节
char b; // 此时结构体占用8个字节
char c; // 还是8个字节
char d; // 还是8个字节
char e; // 还是8个字节
char f; // 现在是12个字节
};

struct B
{
char a; // 1个字节
char b; // 2个字节
char c; // 3个字节
};

struct c
{
char name[10]; // 10个字节
char a; // 11个字节
// 对于char型数组来说,会把数组每个元素当作一个char类型
};

struct d
{
int name[10]; // 40个字节
char a; // 44个字节
char b; // 44个字节
};

struct e
{
char a; // 1个字节
int b; // 8个字节
char c; // 12个字节
// 这种写法内存的消耗相比A就会变大
};

struct f
{
char a; // 1
short b; // 4注意这里short占用的是剩下三个字节中的后两个
// 内存对齐总是以2的倍数对齐
char c; // 所以此时是6
int d; // 12
short e; // 16
char f; // 16
};

【C语言】malloc,calloc,relloc异同示例

版权声明:本文为博主原创文章,如需转载请注明出处。

从我源博客那里搬过来的文章,边复习边搬家。

malloc

1
void * malloc(size_t _Size);

  malloc函数在堆中分配参数_Size指定大小的内存,单位:字节,函数返回void *指针。

calloc

1
void * calloc(size_t _Count, size_t _Size);

  callocmalloc类似,负责在堆中分配内存。

  第一个参数是所需内存单元数量,第二个参数是每个内存单元的大小(单位:字节),calloc自动将分配的内存置为0。

1
int *p = (int *)calloc(100, sizeof(int)); // 分配100个int

ralloc

  重新分配用malloc或者calloc函数在堆中分配内存空间的大小。

1
void * realloc(void *p, size_t _NewSize);

free

1
void free(void *p);

  free负责在堆中释放malloccalloc分配的内存。参数pmalloc返回的堆中的地址。

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()  
{

char *p = (char *)malloc(10); // 分配内存,但是没有赋初值
memset(p, 0, 10); // 这里需要手动赋值,下面的方法则不需要
char *p1 = (char *)calloc(10, sizeof(char)); // 分配内存,并自动设置为0

char *p2 = (char *)realloc(p1, 20); // 在原有内存基础上,在堆中间连续增加的内存
// 如果原有内存没有连续空间可拓展,那么会新分配一个空间,将原有内存copy到新空间,然后释放原有内存
// realloc和malloc,只分配内存,不进行赋值操作

char *p3 = (char *)realloc(NULL, 5); // 等价于mallco(5)

free(p);
free(p1);
free(p2);
free(p3);
return 0;
}

【渔】NTFS转HFS

版权声明:本文为博主原创文章,如需转载请注明出处。

前言

  今天用git的时候遇到一个问题:

fatal: failed to read object 0419b2704f64367e58aa621e7e0c457276bc9d48:
Interrupted system call
error: failed to push some refs to

  搜了一下stackoverflow上找到了原因和解决办法:

I have a Mac on an SSD with an internal NTFS-formatted HDD I use for storage. I was having the same issue trying to push a repo located in the HDD, but as soon as I copied the repo to the SSD the push worked just fine. On Linux I have no problem pushing from the HDD, so this must be an issue with Tuxera NTFS, which is the NTFS driver I’m using on Mac.
If you’re in the same situation as me, I suggest you move that repository to an HFS+ formatted drive or try pushing from a different Operating System.

【渔】网站推荐

版权声明:本文为博主原创文章,如需转载请注明出处。

Git

Python

算法