当前位置:  .net/c#/asp.net iis7站长之家
本页文章导读:
    ▪Object-c学习札记(一):对象的声明及初始化        Object-c学习笔记(一):对象的声明及初始化    一,类的声明 类的声明包括两部分,声明部分及实现部分,下面以Person类的声明为例: 1     Person.h:   .h文件中主要是对类的声明(包括实.........
    ▪ xcode模拟器调试无法显示调用栈的解决方法        xcode模拟器调试无法显示调用栈的解决办法    使用xcode进行模拟器调试时,出现crash后,很多时候往往无法显示出正确的调用栈信息, 往往只能显示最初始的main函数调用,类似下图1      .........
    ▪ xcode制造和使用静态库       xcode制作和使用静态库制作静态库 1 新建工程StaticlbTest 2 在StaticLibTest.h 文件中写入方法  -sayWord 3 编辑scheme 4 运行 得到 libStaticLibTest.a 使用静态库 使用的时候,我们需要2个文件 ,一.........

[1]Object-c学习札记(一):对象的声明及初始化
    来源: 互联网  发布时间: 2014-02-18
Object-c学习笔记(一):对象的声明及初始化

    一,类的声明

类的声明包括两部分,声明部分及实现部分,下面以Person类的声明为例:


1     Person.h:   .h文件中主要是对类的声明(包括实例变量及方法等)

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    //实例变量的声明
    int identify;
    int age;
}

//方法的声明  以-开头的为实例方法, 以 + 开头的为类方法(实例方法即java中的成员方法,而类方法为静态方法以类名调用)
- (id) initWithAge: (int) _age identify: (int) _identify;
- (int) age;
- (int) identify;
- (void) setAge: (int) _age;

@end
2    Person.m: .m文件中主要是类的实现(如方法的实现等)

#import "Person.h"

@implementation Person
- (id) initWithAge: (int) _age identify: (int) _identify
{
    if (self = [super init])
    {
        age = _age;
        identify = _identify;
    }
    
    return self;
}

- (int) age
{
    return age;
}

- (int) identify
{
    return identify;
}

- (void) setAge: (int) _age
{
    age = _age;
}

@end

二,类的实例化


先看代码:

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        // insert code here...
        NSLog(@"Hello, World!");
        
        
        //对象的初始化及内存分析
        //初始化:先用alloc分配内存空间,再调用init方法进行初始化
        Person *person;
        //kperson = [[Person alloc] init];
        //NSLog(@"p = %p", person);
        
        person = [[Person alloc] initWithAge:30 identify:360424];
        NSLog(@"person.age: %d ", [person age]);
        int age = 31;
        [person setAge:age];
        NSLog(@"person.age2: %d ", [person age]);
        
        [person setAge:++age];
        NSLog(@"person.age3: %d", [person age]);
        
    }
    
    return 0;
}

在oc中,除了基本数据类型,其它均为指针数据类型,指针数据类型初始化时,要用alloc分配内存空间,并调用init方法进行初始化。。。


如person的初始化,[[Person alloc] init]调用时,在堆内存中分配了一块空间存放一个Person对象,而person是栈内存中一个变量,它指向堆 内存中Person对象所在的地址。。。。


    
[2] xcode模拟器调试无法显示调用栈的解决方法
    来源: 互联网  发布时间: 2014-02-18
xcode模拟器调试无法显示调用栈的解决办法

    使用xcode进行模拟器调试时,出现crash后,很多时候往往无法显示出正确的调用栈信息, 往往只能显示最初始的main函数调用,类似下图1


      图 1


    有个简单的解决办法如下:

       xcode->view->Navigators->Show Breakpoint Navigator,  在右下角的添加 Add Exception Breakpoint, 如图2


     图 2


   再次启动运行模拟器调试,这次就会在crash的语句断点,出现调用栈了



    
[3] xcode制造和使用静态库
    来源: 互联网  发布时间: 2014-02-18
xcode制作和使用静态库
制作静态库

1 新建工程StaticlbTest

2 在StaticLibTest.h 文件中写入方法  -sayWord

3 编辑scheme

4 运行 得到 libStaticLibTest.a

使用静态库


使用的时候,我们需要2个文件 ,一个是头文件,因为这是函数接口,一个是x.a文件,里面有函数的实现什么的。

导入头文件和x.a文件头,我们就可以使用了





    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3