自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李峰峰的博客

爱生活,爱编程

  • 博客(53)
  • 资源 (20)
  • 收藏
  • 关注

原创 OC之ARC环境中的循环strong问题

main.m文件:#import #import "Person.h"#import "Dog.h"int main(){ Person *p = [[Person alloc] init]; Dog *d = [[Dog alloc] init]; p.dog = d; d.person = p; return 0;}Dog.m文件:

2015-08-31 15:10:45 442

原创 OC之非ARC环境下循环retain问题

观察上述情况,上述就是著名的循环引用问题,对于此类问题,“你包含我,我包含你”,里面相关的对象占用的内存永远回收不了,解决办法很简单,与常规方法不同。正常情况下,我们应在Person.h文件中加上:@property (nonatomic, retain) Card *card;,在Card.h文件中加上@property (nonatomic, retain) Person *person;。为

2015-08-31 15:06:20 413

原创 OC之@class

假设有两个类,一个是Card,一个是Person,当Card中包含Person,我们就需要在Card前加上#import “Person.h“。如果此时Person中再包含Card的话,我们就又得在Person类前加上#import “Card.h”。这时再编译运行就会出现故障,因为编译运行会导致两个类不停得拷贝对方,导致报错。这是可以在两个类前用:@class 类就可以避免这种问题,

2015-08-31 15:04:19 619

原创 OC之set方法内存管理

注意在写代码的时候,只要创建了对象,用完这个对象之后必须记得要调用release方法,要使用这个对象的时候必须调用retain方法。比如拿人看书这个例子:首先有一个人p1看书b,Person *p1 = [[Person alloc]init];//p1计数器=1Book *b = [[Book alloc] init];//b计数器=1[p1 setBook:b]; //b计

2015-08-31 15:02:38 493

原创 OC之内存管理

无论是ios还是android中,系统对每个程序运行时内存的占用都有一个限制,默认都是几十M左右大小,当程序占用的内存的大小超过限制时,程序可能就会被强制退出。拿iphone4来说,当程序内存占用超过40M时,会出现内存警告,当内存占用达到45M,还会再一次内存警告,对于以上两次警告如果不做出释放内存操作,当达到120M时,系统会自动kill掉程序。在内存中,分为堆和栈,栈中主要存放变量,

2015-08-31 15:01:10 680

原创 ios之SEL

SEL其实是对方法的一种包装,将方法包装成一个SEL类型的数据,去找对应的方法地址。找到方法地址就可以调用方法, 其实消息就是SEL。对于下列方法调用:[p test2];主要有以下步骤:1.把test2包装成SEL类型的数据2.根据SEL数据找到对应的方法地址3.根据方法地址调用对应的方法比如一个类中有两个方法:+test和-test2每个方法在内存中的地址都有一个对应的

2015-08-31 14:59:10 365

原创 OC之description

打印对象用%@,比如打印字符串对象:NSString *name = @”haha”;NSLog(@”%@”,name);输出结果为:haha比如:Person *p = [[Person alloc]init];p.age = 20;p.name = @”jack”;NSLog(@”%@”,p);会打印出对象p的所属类和内存地址。比如:默认情况下,除字符串

2015-08-31 14:58:13 499

原创 OC之构造方法

完整地创建一个可用的对象系统需要进行以下两步:1.分配存储空间 +alloc2.初始化 -init比如创建一个对象:Person *p = [Person new]; 则系统实际上进行了以下两步:    1.调用+alloc分配存储空间                  Person *p1 = [Person alloc];    2.调用-init进行初始化

2015-08-31 14:57:07 355

原创 OC之id

id是万能的指针,可以指向\操作任何对象,例如:Person *p = [Person new];相当于:id p = [Person new];注意id和p之间不要再加*了,id中默认就带*了。

2015-08-31 14:54:19 370

原创 OC之@property和@synthesize

在OC中经常使用get和set方法,但是当成员变量太多的时候,就要敲很多行get和set方法。在xcode4.4之前,为了简洁代码,可以使用@property声明get和set方法:@property int age;就相当于:- (void)setAge:(int)age;-(int)age;后面代码可以就当作正常写了get和set方法一样去调用- (void)setAge:

2015-08-31 14:51:07 306

原创 OC之点语法详解

点语法的本质是对set和get方法的调用:Person *p = [Person new];p.age = 10;上面p.age = 10不是给Person的成员变量age赋值,而是调用Person中的setAge方法,并传递参数10,所以p.age = 10就相当于[p setAge:10],当然也可以根据调用Person中的get方法,比如Person中有个get方法名为age

2015-08-31 14:48:56 535

原创 OC之NSString

#import @interfacePerson : NSObject{    //char *_name;    NSString *_name;}@end intmain(){    /*    // 最简单的创建字符串的方式    NSString*str = @"itcast";   char *name = "itcast";

2015-08-31 14:44:17 266

原创 OC之多态

多态就是用父类类型的指针创建子类的对象,比如Dog类继承了Animal类,下面都是多态:Animal *aa = [Dog new];Dog *dd = (Dog *)aa;1.没有继承就没有多态2.代码的体现:父类类型的指针指向子类对象3.好处:如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象4.局限性:父类类型的变量不能直接调用子类特有的方法。必须强转为

2015-08-31 14:43:12 332

原创 OC之继承

#import/* 1、继承的好处: (1)抽取重复代码 (2)建立了类之间的关系 (3)子类可以拥有父类中的所有成员变量和方法 2、注意点 (1)基本上所有类的根类是NSObject */  /********Animal的声明*******/@interfaceAnimal : NSObject{    int _age;    do

2015-08-31 14:40:42 303

原创 OC之self详解

self是一个指针,用在方法中时,哪个对象调用该方法self指针就指向哪个对象,可以把它当作调用该方法的那个对象的指针一样使用。#import/* self的用途: (1)谁调用了当前方法,self就代表谁 * self出现在对象方法中,self就代表对象 * self出现在类方法中,self就代表类  (2)在对象方法利用"self->成员变量名"访问当前对象内部的成

2015-08-31 14:39:08 4326

原创 OC之类方法

#import/* 1、对象方法 (1)减号-开头 (2)只能由对象来调用 (3)对象方法中能访问当前对象的成员变量(实例变量)2、类方法 (1)加号+开头 (2)只能由类(名)来调用 (3)类方法中不能访问成员变量(实例变量)  3、类方法的好处和使用场合 (1)不依赖于对象,执行效率高 (2)能用类方法,尽量用类方法 (3)场合:

2015-08-31 14:37:40 325

原创 OC之成员变量封装

#import@interface Student : NSObject{    // 成员变量尽量不要用@public    // @public    int age;    //@public    // 只读(readonly):只允许外界访问我的no,不允许外界修改我的no    int no; // 只需要提供get方法} /* se

2015-08-31 14:36:21 375

原创 OC之OC的类

比如,定义一个类名为Car的类,类的声明(类的声明通常写在头文件中,即.h文件中,也可直接写在.m文件中):// NSobject可以让类有创建对象的能力@interface Car : NSobject{//声明对象属性@public  //是成员变量变成共有的,其下所有成员变量都将变成共有的,当然也可以在每个成员变量上都加@public//【备注】实际开发中成员变量应以

2015-08-31 14:34:32 346

原创 OC之输出

NSLog(@”我的OC程序”)。NSLog输出内容会自动换行。其中@与后面内容之间不能有空格。当然在OC中也可以使用printf函数输出,由于NSLog是OC系统定义过的,所以使用之前要先导入相关头文件。#import ,当然import也可以换成include。#import有两个用途,第一个用途:与C语言中的include完全一样。第二个用途:可以自动防止文件内容被重复拷贝,也就

2015-08-31 14:32:44 1167

原创 OC之iOS开发常用Unix指令

在终端中输入指令pwd 查看当前目录ls 列出当前目录下所有文件ls –l 详细列出当前目录下文件的属性mkdir 在当前目录下新建文件夹(mkdir 文件名)touch 在当前文件夹下新建文件(touch xxx.txt)cd 改变当前目录(cd 新目录/)open 打开文件或文件夹clear 清空终端上下键 返回上一个指令tab键补齐

2015-08-31 14:31:14 766

原创 Android 通过Get/Post提交请求数据到服务器

package com.lifengfeng.submitdata.utils;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;

2015-06-29 16:42:09 359

原创 android让界面不被弹出的键盘挤上去

在androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode="adjustPan"  可以让界面不被弹出的键盘挤上去。

2015-06-24 14:32:09 1605

原创 android隐藏以及显示软键盘以及不自动弹出键盘的方法

1、//隐藏软键盘   ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS)

2015-06-24 14:29:52 337

原创 android获取SD卡状态

/** 获取存储卡路径 */ File sdcardDir=Environment.getExternalStorageDirectory(); /** StatFs 看文件系统空间使用情况 */ StatFs statFs=new StatFs(sdcardDir.getPath()); /** Block 的 size*/ Long blockSize=statFs.get

2015-06-24 14:28:29 310

原创 android获取mac地址

1、  2、private String getLocalMacAddress() { WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMac

2015-06-24 14:27:10 440

原创 android获得手机联系人信息代码

public class SelectContactActivity extends Activity { private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.la

2015-06-24 14:25:26 589

原创 android GPS定位代码

public class MainActivity extends Activity { private LocationManager lm; private MyLocationListener listener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(s

2015-06-24 14:23:48 772

原创 android MD5加密

public class Demo { /** * @param args * @throws NoSuchAlgorithmException */ public static void main(String[] args) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.ge

2015-06-24 14:21:54 319

原创 android如何对应用进行单元测试

在实际开发中,开发android软件的过程需要不断地进行测试。而使用Junit测试框架,侧是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性。第一步:首先在AndroidManifest.xml中加入下面红色代码:xmlns:android="http://schemas.android.com/apk/res/android"

2015-06-24 14:19:29 316

原创 Android应用程序架构

src/  java原代码存放目录gen/自动生成目录gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字

2015-06-24 14:17:21 356

原创 DecimalFormat用法

DecimalFormat是 NumberFormat的一个具体子类,用于格式化十进制数字。DecimalFormat包含一个模式和一组符号 符号含义: 0 一个数字 # 一个数字,不包括 0 . 小数的分隔符的占位符 , 分组分隔符的占位符 ; 分隔格式。 - 缺省负数前缀。 % 乘以 100和作为百分比显示 ?

2015-06-24 14:15:18 285

原创 android手势滑动——左右滑动效果实现

/** * 手势监听 * * @author lifengfeng * */public class MainActivity extends Activity implements OnTouchListener, OnGestureListener { // 创建一个用于识别收拾的GestureDetector对象 @SuppressWarnings("deprecat

2015-06-22 15:30:39 627

原创 android BitMap回收

bitmap在android中使用较多,但是如果不对其进行回收,将会导致内存问题。【第一种方法】及时回收bitmap内存:一般而言,回收bitmap内存可以用到以下代码if(bitmap != null && !bitmap.isRecycled()){           bitmap.recycle();           bitmap = null;   

2015-06-22 11:38:20 7743

原创 Android上webview界面切换动画效果

使用Android上的webview控件时需要跳转到下一个html时,要求当前界面缓缓的向左移动,下一个html界面缓缓的从右边出现。这与常规动画不同,一般方式将无法制作出动画。主要实现方法可以先保存上一个网页的快照,与将要跳转的页面结合起来,制作相关动画。下面是主要代码:@Override public void onProgressChanged(WebView vie

2015-06-22 11:04:58 5468 1

原创 自定义webview,根据网页大小确定webview大小

public class MyWebView extends WebView { public MyWebView(Context context) { super(context); } public MyWebView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, def

2015-06-19 12:48:33 794

原创 TabHost页和子Activity之间的通讯

TabHost的各个Tab页,都是由activity组成。现在,某个子Activity中处理数据后,要自动跳转到另外一个Tab页中。这样,需要有个TabHost页和子Activity之间的通讯的机制。 子Activity通知TabHost:1、通过广播方式1)在TabHost中定义广播定义变量protected MessageBroadcastReceiver myRe

2015-06-19 12:43:58 567

原创 BitMap、Drawable、inputStream及byte[] 互转

(1) BitMap to inputStream: ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); InputStream isBm = new ByteArrayInputStream(baos

2015-06-19 12:42:50 297

原创 Android中获得上下文的静态方法

//在Android的清单文件做如下申明: //然后写这个类:public class MyApplication extends Application{ private static Context context; public void onCreate(){ super.onCreate(); MyApplicat

2015-06-19 12:41:01 2400

原创 android隐藏以及显示软键盘以及不自动弹出键盘的方法

1、//隐藏软键盘 ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

2015-06-19 12:39:47 275

原创 android开机启动代码

public class StartupReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent startupintent = new Intent(context,StrongTracks.class

2015-06-19 12:37:54 326

15款Android游戏源码

15款Android游戏源码打包下载,可以研究学习。

2015-09-30

图片左右滑动点击放大

图片左右滑动,点击放大,可以修改直接用在项目中

2015-09-30

人脸检测案例

人脸检测,值得学习的案例,欢迎下载学习。

2015-09-30

百度地图定位,显示周围的人,类似于E代驾的首页效果.

百度地图定位,显示周围的人,类似于E代驾的首页效果

2015-09-30

Android 4.0下指南针开发源码,可在Nexus 4上完美运行

Android 4.0下指南针开发源码,可在Nexus 4上完美运行

2015-09-30

WIN8系统磁贴点击下沉倾斜效果源码

WIN8系统 磁贴点击下沉倾斜效果源码,案例代码

2015-06-25

gridview分页效果

一个实用小案例,gridview分页效果源代码

2015-06-25

GridView拖动排序、删除源码

自己做的类似GridView 的控件,可以拖动排序,有删除动画

2015-06-24

单排显示gridview并从解析JSON读取数据加载项目

单排显示gridview并从解析JSON读取数据加载项目

2015-06-24

仿UCWEB界面源码

android界面开发典型案例,仿UCWEB界面源码

2015-06-24

超爽的android抽屉效果

超爽的android抽屉效果,需要的下载修改修改拿去用吧

2015-06-24

Android自动开关机源码

小案例,Android自动开关机实现源码

2015-06-24

Android与js交互案例

Android与js交互案例,需要的可以下载学习一下

2015-06-24

指南针定位源码

一个小案例, 指南针定位源码,对于学习指南针开发的同学帮助很大

2015-06-24

仿做蘑菇街UI源码

UI设计之仿做蘑菇街UI设计源码,对于界面设计学习很有帮助

2015-06-24

android多线程断点下载

android多线程断点下载,亲测可用,需要的自行下载吧

2015-06-24

AndroidPlayer(仿酷狗播放器)

AndroidPlayer(仿酷狗播放器)

2015-06-24

360新版特性界面源代码

仿360新版特性界面源代码,需要的自行来下载吧

2015-06-24

viewpager加载网络图片并实现轮播源码

viewpager加载网络图片并实现轮播源码,亲测可用。

2015-03-27

高仿京东商城界面

使用tabhost实现高仿京东商城界面,亲测可用

2015-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除