当您尝试在目标c中转换为null的对象时会发生什么?

时间:2013-12-03 08:00:14

标签: objective-c casting null

我有以下代码:

[application.tripHandler createTrip:picker.date
                          pickUpAddress:[ModelUtil addresFragmentFromGeoAddress:pickUpAddress]
                       orPickUpLocation:pickUpFavorite
                      andDropOffAddress:[ModelUtil addresFragmentFromGeoAddress:dropOffAddress]
                      orDropOffLocation:dropOffFavorite forDriver:application.currentDriver.driverId
                             completion:^(NSObject *entity)
     {
         if(application.dispatchVehicle)
         {
             Trip *createdTrip = (Trip *)entity;

当实体为空时会发生什么?

3 个答案:

答案 0 :(得分:3)

如果entitynil,则createdTrip也将为nil

nilNULL在技术上是相同的,但nil在语义上是空对象值,而NULL是空指针。

在运行时,转换指针实际上并没有做任何事情。它仅修改指向的类型,然后影响对结果值的后续操作。但实际指针值将通过演员表保持不变。

答案 1 :(得分:0)

createdTrip将是nil对象。

答案 2 :(得分:0)

在obj-c中,演员在运行时没有做任何事情,所以你只需指定nil。