首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我在目标C中得到像0xb000000000000033这样的NSString值

在目标C中得到像0xb000000000000033这样的NSString值是因为在打印一个对象时,Objective-C会默认调用其description方法,将对象转化为字符串进行输出。对于一些特殊的对象,其内存地址会被转化为一个十六进制的字符串形式。

对于这样的NSString值,它实际上代表的是一个指针地址,通过将地址值转化为字符串形式输出。由于具体的代码和上下文缺失,无法进一步确定这个地址具体指向的内容。

在解决这个问题之前,我们需要了解目标C中的NSString和指针的概念。

NSString是Objective-C中表示字符串的类,它提供了很多字符串操作的方法。而指针是C语言中的一种数据类型,用于存储变量的内存地址。

可能出现该问题的一种可能原因是,在目标C代码中,你可能使用了一个指针对象而没有对其进行正确的初始化或赋值操作,导致打印时输出了这个指针的地址值。

为了解决这个问题,你可以检查代码,确保你在使用指针对象之前已经正确地对其进行了初始化或赋值操作。另外,你可以使用调试工具来跟踪代码执行过程,找出问题所在。

需要注意的是,在实际开发过程中,如果需要输出NSString对象的内容,应该使用对应的格式化输出方法,而不是直接打印对象的地址值。可以使用%@格式符来输出NSString对象的内容。

参考腾讯云相关产品和产品介绍链接地址:

  • 腾讯云基础计算服务:https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储服务:https://cloud.tencent.com/product/cos
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tke
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【DB笔试面试584】Oracle,如何得到已执行目标SQL绑定变量

♣ 题目部分 Oracle,如何得到已执行目标SQL绑定变量?...♣ 答案部分 当Oracle解析和执行含有绑定变量目标SQL时,如果满足如下两个条件之一,那么该SQL绑定变量具体输入就会被Oracle捕获: l 当含有绑定变量目标SQL以硬解析方式被执行时...l 当含有绑定变量目标SQL以软解析或软软解析方式重复执行时,Oracle默认情况下至少得间隔15分钟才会捕获一次。...,Oracle只会捕获那些位于目标SQLWHERE条件绑定变量具体输入,而对于那些使用了绑定变量INSERT语句,不管该INSERT语句是否是以硬解析方式执行,Oracle始终不会捕获INSERT...查询视图V$SQL_BIND_CAPTURE或V$SQL可以得到已执行目标SQL绑定变量具体输入

3K40

iOS下JS与OC互相调用(八)--Cordova详解+实战

不用急,这里报错是因为Cordova类引用错误,命令行创建工程里Cordova 是以子工程形式加入到目标工程,两个工程命名空间不同,所以import 是用 类似这样方式#import <Cordova...首先,HTML需要加载 cordova.js,需要注意该js 文件路径,因为cordova.js与HTML放在同一个文件夹,所以src 是这样写: <script type="text/javascript...大致思想就是,<em>在</em>JS<em>中</em>定义一个数组和一个字典(键值对)。 数组<em>中</em>存放<em>的</em>就是: callbackId与服务、操作、参数<em>的</em>对应关系转成json 存到上面全局数组<em>中</em>。...** 依然是做一个假<em>的</em>URL 请求,然后<em>在</em>UIWebView<em>的</em>代理方法<em>中</em>拦截请求。...Native 调用 JS 方法 这个非常简单,如果是<em>在</em>控制器<em>中</em>,那么只需要<em>像</em>如下<em>这样</em>既可: - (void)testClick { // 方式一: <em>NSString</em> *jsStr = @

2.7K20
  • Objective-C属性(property)特性(attribute)

    也就是说,有线程访问setter,其他线程只能等待完成后才能访问。 它能保证:即使多个线程「同时」访问这个变量,atomic会让你得到一个有意义(valid value)。...nonatomic 而用nonatomic,则不保证你获得是有效,如果上面所述,读、写两个线程同时访问变量,有可能会给出一个无意义垃圾。...这样对比,atomic就显得比较鸡肋了,因为它并不能完全保证程序层面的线程安全,又有额外性能耗费(要对getter和setter进行加锁操作,验证过,某个小项目中将所有的nonatomic删除,内存占用平均升高...copy 为了说明copy,我们先举个栗子: 某个类(class1)声明两个字符串属性,一个用copy,一个不用: @property (copy, nonatomic) NSString *nameCopy...这些类型属性赋值时,右边有可能是它们可变版本。这样就会出现属性被意外改变可能。所以它们都应该用copy。

    1.9K30

    TableView优化之高度缓存

    这样的话,定义一套接口,可以使任意类都用不同方式去实现接口中方法,就是为遵守了protocol类提供了一些额外访问这个类一些接口,delegate和dataSource用protocol实现是最好...通过这里我们知道我们OC语言是怎么实现了吧,就是通过runtime转化成了C++代码,然后进行运行。 从这你也应该知道为什么OC叫发送消息,不叫函数调用了吧。...反正英语水平就这样也没查字典,对不对就不深究了。一个setter一个getter就在这。...objc_getAssociatedObject 两个参数,一个绑定目标,一个关键字,通过关键字从绑定目标获取属性。 这下是不是明白这两个setter、getter方法意义了。...然而之所以不爱附上demo链接是因为老司机觉得每次都已经很详细博客贴出全部代码而且一句一句讲解真的已经知无不言言无不尽了,觉得编程这种东西还是得下手敲一遍,看别人东西看一天也看不懂。

    2.4K30

    面经之《招聘一个靠谱iOS》import CYLBlockExecutor.himport CYLBlockExecutor.himport CYLNSObject+RunAtDeallo

    ; } 不过也有争议,有人说“苹果如果下面这样干,是不是效率会高一些?”...与其setter判断,为什么不把代码写好? 或者 [a setX:[a x]]; //队友咆哮道:你干嘛?!! 不要在 setter 里进行 if(_obj !...obj1 = 0; obj_storeWeak(&obj1, obj); 也就是说: weak 修饰指针默认是 nil (Objective-C向nil发送消息是安全) 然后obj_destroyWeak... Objective-C 向 nil 发送消息是完全有效——只是在运行时不会有任何作用: 如果一个方法返回是一个对象,那么发送给nil消息将返回0(nil)。...runtime如何实现weak变量自动置nil? 能否向编译后得到增加实例变量?能否向运行时创建添加实例变量?为什么? runloop和线程有什么关系?

    1K100

    iOS「回调(callback)」

    iOSRun loop 我们知道自己需要callback,那iOS,具体要怎么实现呢?...Objective-C中有4种途径可以实现回调: 1、Target-action/目标-动作对 先看代码: // 为按钮添加回调——Target-action/目标-动作对 // 第一个参数:发送消息给谁...如果有这个疑问,可以移步到我知乎回答问题:如何用简单明了的话解释一下什么是 Objective-C 委托?或许可以解答你部分疑问。...4、Blocks Block算是Objective-C中比较高阶内容。这样理解吧,Block其实就是大括号里面的一大段代码,这段代码,会在某事件(event)发生后被执行。...记得最后加分号哦,因为就是一个常量,就像数字「5;」一样"); }; 带实参、会返回Block: // 有实参,有返回Block ^(double dividend,

    3.5K30

    编码篇-开发关于数字那些事儿

    为什么使用floatValue、doubleValue 转化后数据会出现误差。 要回答这点,我们先要明白这是浮点数计算机存储方式就决定。先来了解下浮点数计算机存储方式。...我们都知道计算机内存,任何数据都是以0、1形式被存储记录,每一个这样存储单位叫做位(bit),这也是二进制实现基础。...bit31 共1位 为符号位,1表示负数 所以 8.25 计算机实际存储这样存储 ?...NSDecimal是C语言级别的无法直接创建,不幸是,基础框架没有直接创建方法,你只能先创建生成一个 NSDecimalNumber 再得到对应 NSDecimal。...//避免2.0000这样被解析成2. 以。。。

    1.2K10

    各种获取设备唯一标识方法介绍

    获得UUID系统没有存储, 而且每次调用得到UUID,系统都会返回一个新唯一标示符。...读取NSUUID时,注意到获取到这个跟CFUUID完全一样(不过也可能不一样) 三.open UDID iOS 5发布时,uniqueIdentifier被弃用了,这引起了广大开发者需要寻找一个可以替代...为什么会使用它?iOS5之前,都是使用UDID,后来被禁用。苹果推荐使用UUID 但是也有诸多问题,从而使用MAC地址。...如何正确获取设备唯一标识 方法是将获取UUID永久存储设备KeyChain, 这个方法应用第一次启动时, 将获取UUID存储进KeyChain, 每次取时候, 检查本地钥匙串中有没有...需要将唯一标示保存到KeyChain这样即便是应用卸载了,然后用户安装也是获取到唯一UUID。

    3.3K20

    iOS设备唯一标识前世今生

    比如下面是通过iTunes获取到公司测试机设备信息: ?       (有同事问我说为什么iTunes电话号码下面是序列号,不是UDID啊,你这是个假iTunes吧!!...IDFA俗称广告ID,估计开发者里面提交用过应用朋友都知道,最后提交时候苹果会问你有没有使用广告ID,不知道现在该有没有处于懵逼状态不懂苹果为什么要问这个同行,看了我们这个就会清楚了为什么会这么问呢...iOS 7.0之后你再去请求MAC地址,返回永远都是同一个!被禁了.........我们用事实说明这个问题,下面的这些结论都是经过自己亲自测试现有的版本是没有问题!!!      ...最后:              通过上面的对比数据分析,结果我们也给大家了,通过上面的结论,你就知道了使用 UUID + KeyChain 利弊,目前你想要做唯一标识 UUID + KeyChain

    3.5K60

    解读 iOS 组件化与路由本质

    代码实现大概就是: + (void)gotoURI:(NSString *)URI { 解析 URI 得到目标和参数 NSString *aim = ...; NSDictionary...比如点击 A 触发跳转到 B 界面,某一时刻又需要点击 A 跳转到 C 界面。 要保证最小粒度动态调用,就需要目标业务完整信息,比如上面说aim和params,即目标和参数。...实际上 iOS Objective-C 中大概有反射和依赖注入两种思路: 将aim转化为具体Class和SEL,利用 runtime 运行时调用到具体业务。...组件化总结 对于很多项目来说,并非一开始就需要实施组件化,为了避免将来业务稳定需要实施时候束手无策,项目之初最好有一些前瞻性设计,同时编码过程也要尽量降低各个业务模块耦合。...不要总说“就应该是这样”,而多想“为什么这样”。

    1.3K30

    UITableView性能提升和优化(第

    对于OS来说,创建和加载一个新cell到内存,都是要花费时间和内存资源。这就是为什么tableview总是queue 一个cell进行重用,无论这个cell是否屏幕之外。...首先解释一下在这些例子为什么没有使用[UIImage p_w_picpathd:@""]。...使用这个技术,你可以把耗时处理任务放到当前线程之外。的当前例子,不会使用多线程,因为你必须立即了解很多新概念。本章结束时候,你应该自己做完这个练习。...通常,对于一个正常,简单里面包含很多subviewsUITableView来说,这已经是一个非常好性能了。这样是非常好,因为你不必开始时候就做很多工作。...因此,你会看到很多真实应用(Facebook,这是我们尝试模拟),滚动性能会被复杂subviews结构严重影响到。测试应用有一个类似图 3-5这样一个用户界面。 ?

    67420

    从 ReactiveCocoa 能学到什么?不用此库也能学以致用

    从知道ReactiveCocoa开始就发现对这个库有不同声音,上次参加技术沙龙时唐巧对项目中已全面使用FRP代码家提出为什么这种编程模型出现了这么长时间怎么ReactiveCocoa这种完全按FRP...其实在学习过程也发现确实会有这个问题,不过就算是有这样那样问题使得ReactiveCocoa这样库没法大面积使用起来,也不能错失学习这种编程思想机会。...BOOL给SMStudent记录下来。...除了block还可以将每次sendNext积分放入一个数组记录每次积分变化,RACSignal就是这样处理,如下图,这样新加入subscirber能够读取到积分变化历史记录。...上面的例子那样其实也能够达到同样效果,创建一个Model然后通过各个Subject来贯穿视图层和数据层进行send和多subscribe处理。

    41310

    ios开发 Runtime 详解part2(动态方法解析)

    ios开发 Runtime 详解part1已经解释了Introspection,接下来介绍Runtime其它特性。 Runtime能做什么?...(动态方法解析) 苹果文档里给出了一个动态添加c方法例子: 例子, 在这里做一些扩展: 首先RuntimeObject.h类添加三个方法: - (void)addInstanceMethod...// 添加c方法 RuntimeObject.m我们有三个方法: /** 动态绑定实例方法 @param str 传递参数 */ - (void)instanceMethod: (NSString...name: 是一个selector,指定添加方法名字 imp: 实现新方法,必须包含self和_cmd两个参数,由于oc方法默认有这两个参数,代码不必特别添加,但是c方法需要加上这两个参数...动态方法解析可以让我们对属性修饰@dynamic一样,不让系统提供实现方法,自定义方法实现,也可以用来绑定c方法来进行实现,一旦绑定,我们也可以用performSelector来直接调用.m里绑定方法

    69010

    iOS - 老生常谈内存管理(二):从 MRC 说起

    Objective-C ,它也可以看作是许多数据和代码之间分配有限内存资源所有权一种方式。...野指针: C 是指没有进行初始化指针,该指针指向一个随机空间,它是个垃圾 OC 是指指向对象已经被回收了指针(网上很多都是这样解释,但我认为它应该叫 “悬垂指针” 才对)。...例如,你可以这样实现 fullName 方法: - (NSString *)fullName { NSString *string = [[[NSString alloc] initWithFormat...你还可以这样实现 fullName 方法: - (NSString *)fullName { NSString *string = [NSString stringWithFormat:@"%...这样做可以防止因为父类初始化失败而返回了一个不可用对象。如果你不是这样做,你可能你会得到一个不可用对象,并且它行为是不可预测,最终可能会导致你程序发生Crash。 Why?

    1.5K21

    IOS6学习笔记(三)

    这意味着下面这样声明使用ARC编译后指向是空(nil):   NSObject *myObject1,*myObjects2;   不过要注意是,与其他高级编程语言不同,ARC不会自动将标量设置为零...这意味着以下几行代码声明变量其并不等于零:   int a;   int b; 2.Objective-C命名约定   如果你Person对象写了一个叫做newPersonName方法,ARC...newPersonName方法可以下面这样标注,以告诉ARC编译器:尽管该方法名称前面是new,返回却是未保留过对象指针。   ...-(NSString *)newPersonName NS_RETURNS_NOT_RETAINED;  4.自由桥接   与Objective-C库不同,我们Objective-C中使用标准C语言和...ARC,__block引用会被保留而不是被复制,这意味着ARC环境前面的代码仍然会引发循环保留。

    72390

    OC类原理(一)

    前面两篇文章介绍了OC对象原理,以及一些分析思路和方法,今天开始,将开启类原理探究。 不过探究类原理之前,想补充说明一些东西。...&c[0]表示是数组c第一个元素地址;而*d表示是数组c,因此d表示是数组c地址,也就是数组c第一个元素地址。因此&c[0]与d是一样。...d前面加*表示是取地址d,因此*(d+i)表示就是数组c第i个元素。 类结构分析 类是使用Class来接收,这一点我们开发已经非常熟悉了。...0x100002358是bits首地址,也就是bits指针,因此我们需要强转一下,如下: 现在得到了bits指针,那么怎么得到bits里面的呢?...明明LGPerson没有定义任何方法啊。 其中第一个方法我们也已经看到了,.cxx_destruct是系统默认添加方法,那么其他两个是什么呢?

    56620

    对象、消息、运行期--8:对象等同性isEqual:、hash

    对象等同性 对象等同性 :我们使用对象时候,往往需要判断两个对象是否相等,这种相等包含两种含义: 程序上是否是同一块内存地址 语义上,是否能指代同一对象 NSString *str = @...比如我们要从数组查找某个成员 step1:遍历数组成员 step2:将取出目标值比较,如果相等,则返回该成员 这样查找比较复杂,为了提高查找速度,Hash Table出现了,当成员被加入到...Hash Table时,会给它分配一个hash,以标识该成员集合位置,分配这个hash(即用于查找集合、数组成员位置标识)就是通过hash算法计算出来,且hash方法返回hash最好唯一...,和数组相比,基于hash索引hash Table查找某个成员过程就是 step1:通过hash直接找到查找目标的位置 step2:如果目标位置上有多个相同hash成员,此时再按照数组方式查找...,只有类编写者才可以确定俩个对象实例何种情况下应判定为相等 参考 Effective+Objective-C 2.0 编写高质量iOS与OS X代码52个有效方法

    13910
    领券