ios
mac 键盘没反应,触摸板不能用之恢复
星期五, 十月 17th, 2014 | computer, ios, mac | 没有评论
今天早上起来,开机mbp,发现无法输入任何信息,触摸板也不好用,才买的不到半年就出这毛病;
打apple的技术支持热线:400-627-2273,服务还是蛮好的,告诉了硬件恢复检测的方式,后电脑就可以正常使用了;
1.电源键关闭电脑(屏幕变黑即是)
2.control+shift+option+电源键 四键一起按下 15秒后松开(系统硬件检测恢复功能)
3.再开机即可,方向键选择你的帐号,发现键盘可以了
微信Mac版本无法帐号登录解决
星期五, 十月 10th, 2014 | ios | 没有评论
今天 mac推送了微信(weChat)的更新,也就安装更新了,
发现原理用帐号登录的地方没有了,对于我这个 不习惯一堆操作扫描的人,真是麻烦极了.
就想恢复到上一个版本,就可以使用了.(把(10月份)新版本放到垃圾箱,再安装下面个即可(2014-03-28版本))
附:可以帐号登录的版本: 微信帐号版(Mac)下载
virtualbox上osx的安装使用,修改虚拟硬盘大小
星期二, 一月 22nd, 2013 | ios | 没有评论
没买苹果机,只能装个虚拟机用用了,不过全屏后效果也还不错。
原来装过一次,不是很成功,需要引导,分辨率也是在启动时需要设置,所以这一次就想装个省事点的,就选择了iAtkos发布的改进版。
版本:virtualbox:4.2.6;osx:Mountain Lion 10.8.2
安装前提:据说需要intel的cpu,我机子是i5
下载:https://kat.ph/,搜索iAtkos
设置虚拟机:新建osx虚拟机,设置主要注意几点,1、系统版本选择64位;2、系统,扩展特性勾掉开启EFI
安装osx:设置虚拟机启动顺序,光驱第一,选择光盘(不需要装换格式,直接用dmg),按步骤安装系统
设置分辨率:1、osx启动设置:修改Extra目录下文件org.Chameleon.boot.plist,增加一项
修改是需要先复制出来文件,修改后替换原来文件(原来文件被锁定);
2、虚拟机设置:cd “C:\Program Files\Oracle\Virtualbox”,
vboxmanage setextradata “Name of virtual machine” “CustomVideoMode1” “1920x1080x32”
安装xcode:因为app store下载太慢,也是在kat上下载后,光盘加载安装的
共享文件:https://forums.virtualbox.org/viewtopic.php?f=22&t=38051
修改虚拟硬盘大小
发现osx在更新xcode跳出空间不足,用df —ah查看,发现硬盘只有1.1g没用,总容量也只有20G(虚拟硬盘最大设置的是30G,
估计安装系统时分区设置为20G)
1、增加虚拟硬盘大小:VBoxManage.exe modifyhd J:\osx.vdi –resize 30720 改为30G
2、修改osx分区大小:application->utiltities->Disk Utility,先verify,没错误再partion
object C基础
星期三, 一月 16th, 2013 | ios | 没有评论
这篇主要记录学习apple developer上的Programming with Objective-C的体会
1、类
类是创建对象的模板,接口是类对外的展示
(1)接口定义
1 2 3 4 5 6 7 | @interface Person : NSObject @property (readonly) NSString *firstName; @property (readonly) NSString *lastName; @property int yearOfBirth; - (void)sayHello; - (void)saySomething:(NSString *)someWords; @end |
需要注意,名称必须唯一,所以一般会添加前缀,防止命名冲突(比如ZLWPerson)。
在方法前加-,代表这是一个实例方法。类方法前加+。
(2)类定义
1 2 3 4 5 6 7 8 9 10 | #import "XYZPerson.h" @implementation XYZPerson - (void)sayHello { [self saySomething:@"Hello, world!"]; } - (void)saySomething:(NSString *)someWords{ NSLog(@"%@", someWords); } @end |
如果要调用父类的方法[super saySomething:someWords];
(3)对象
方法调用
1 | [zhoulw saySomething:@"shut up!"]; |
初始化(可带参数)
1 | SomeObject *newObject = [[SomeObject alloc] initWithInt:30]; |
利用new初始化(不带参数,只是简化写法)
1 | SomeObject *newObject = [SomeObject new]; |
利用工厂方法(实际上还是调用了初始化)
1 | NSNumber *magicNumber = [NSNumber numberWithInt:42]; |
利用字面量
1 | NSString *name = @"zlw"; |
nil:不同于java的null,不会抛异常
1 2 3 | if (somePerson) { // somePerson points to an object } |
实例变量
1 2 3 4 5 6 | @synthesize firstName = ivar_firstName; ... NSString* firstName = [personZlw firstName]; firstName = personZlw.firstName; firstName = ivar_firstName; [personZlw setFirstName:@"zhoulw"]; |
没有使用@synthesize,则实例变量名为_firstName;
@synthesize firstName,则实例变量名就是firstName;
可以不写property,定义实例变量,不过不建议使用;
在init方法中,直接使用实例变量赋值,而不用set方法(why?没有实例?);
get,set方法是原子操作
强引用,弱引用
1 2 | @property (weak) id delegate; NSObject * __weak weakVariable; |
有些类不可以被弱引用,如NSTextView, NSFont and NSColorSpace
1 2 | @property (unsafe_unretained) NSObject *unsafeProperty; NSObject * __unsafe_unretained unsafeReference; |
copy修饰
1 2 3 4 5 6 | NSMutableString *nameString = [NSMutableString stringWithString:@"John"]; self.badgeView.firstName = nameString; [nameString appendString:@"ny"]; ... //直接赋值时别忘记copy _instanceVariableForCopyProperty = [aString copy]; |
4、protocol
略,原来写了,忘记保存,懒得补
5、block
1 2 3 4 5 | void (^simpleBlock)(void) = ^{ NSLog(@"This is a block"); }; ... simpleBlock(); |
1 2 3 4 5 6 | double (^multiplyTwoValues)(double, double) = ^(double firstValue, double secondValue) { return firstValue * secondValue; }; double result = multiplyTwoValues(2,4); NSLog(@"The result is %f", result); |
1 2 3 4 5 6 | int anInteger = 42; void (^testBlock)(void) = ^{ NSLog(@"Integer is: %i", anInteger); }; anInteger = 84; testBlock(); //42 |
__block block可以知道变量修改,并且block可以改变变量值
1 2 3 4 5 6 7 8 | __block int anInteger = 42; void (^testBlock)(void) = ^{ NSLog(@"Integer is: %i", anInteger); anInteger = 100; }; anInteger = 48; testBlock();//48 NSLog(@"Value of original variable is now: %i", anInteger);//100 |
1 2 3 4 5 6 7 8 | typedef void (^XYZSimpleBlock)(void); XYZSimpleBlock anotherBlock = ^{ ... }; - (void)beginFetchWithCallbackBlock:(XYZSimpleBlock)callbackBlock { ... callbackBlock(); } |
Search
相关文章
热门文章
最新文章
文章分类
- ajax (10)
- algorithm-learn (3)
- Android (6)
- as (3)
- computer (85)
- Database (30)
- disucz (4)
- enterprise (1)
- erlang (2)
- flash (5)
- golang (3)
- html5 (18)
- ios (4)
- JAVA-and-J2EE (186)
- linux (143)
- mac (10)
- movie-music (11)
- pagemaker (36)
- php (50)
- spring-boot (2)
- Synology群晖 (2)
- Uncategorized (6)
- unity (1)
- webgame (15)
- wordpress (33)
- work-other (2)
- 低代码 (1)
- 体味生活 (40)
- 前端 (21)
- 大数据 (8)
- 游戏开发 (9)
- 爱上海 (19)
- 读书 (4)
- 软件 (3)