Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 解析聊天室-将NS数组转换为NSMutableArray以在表视图上显示_Ios_Objective C_Uitableview_Chatroom - Fatal编程技术网

Ios 解析聊天室-将NS数组转换为NSMutableArray以在表视图上显示

Ios 解析聊天室-将NS数组转换为NSMutableArray以在表视图上显示,ios,objective-c,uitableview,chatroom,Ios,Objective C,Uitableview,Chatroom,我正在尝试创建一个聊天室,并在表视图上显示“可用聊天”。 我正在尝试使用mutableCopy将*对象NSArray转换为NSMutableArray,并将其显示在tableView上。。。但它似乎不断崩溃 谢谢你的帮助 h @接口MMKMatchesViewController 1:UITableViewController m @接口MMKMatchesViewController1()// @属性(强,非原子)IBUITableView*tableView; @属性(强、非原子)NSMU

我正在尝试创建一个聊天室,并在表视图上显示“可用聊天”。 我正在尝试使用mutableCopy将*对象NSArray转换为NSMutableArray,并将其显示在tableView上。。。但它似乎不断崩溃

谢谢你的帮助

h

@接口MMKMatchesViewController 1:UITableViewController

m

@接口MMKMatchesViewController1()//

@属性(强,非原子)IBUITableView*tableView; @属性(强、非原子)NSMUTABLEARRY*可用CATROMS

更新聊天室的代码

-(NSMutableArray*)可用的聊天室{ 如果(!\u可用的聊天室){ _AvailableCatrooms=[[NSMutableArray alloc]init]; } 返回_availablechatoms;}

这就是应该更新tableView的内容

  • (无效)更新可用聊天室{ PFQuery*query=[PFQuery queryWithClassName:@“聊天室”]

    [查询whereKey:@“user1”等于:[PFUser currentUser]]

    PFQuery*QueryVersion=[PFQuery queryWithClassName:@“聊天室”]

    [查询whereKey:@“user2”等于:[PFUser currentUser]]

    PFQuery*queryCombined=[PFQuery或QueryWithSubQueries:@[query,QueryVersion]]

    //[queryCombined includeKey:@“chat”]

    [queryCombined includeKey:@“user1”]

    [queryCombined includeKey:@“user2”]

    [查询组合findObjectsInBackgroundWithBlock:^(NSArray*对象,NSError*错误){

    } 否则{

    }

    cell.textlab.text=likedUser[@“profile”][@“firstName”]

    //344

    //cell.imageView.image=占位符图像

    cell.imageView.contentMode=UIViewContentModeScaleAspectFit

    PFQuery*queryForPhoto=[[PFQuery alloc]initWithClassName:@“Photo”]

    [queryForPhoto whereKey:@“用户”等于:likedUser]

    [查询照片findObjectsInBackgroundWithBlock:^(NSArray*对象,NSError*错误){

    }])

    返回单元格;}

@JAMIE-当我按下按钮转到聊天窗口时显示的错误

2014-11-08 12:34:21.468 Project1[19993:244958] *** Assertion failure in -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/UITableView.m:6116
2014-11-08 12:34:21.472 Project1[19993:244958] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000109727f35 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x00000001093c0bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000109727d9a +[NSException raise:format:arguments:] + 106
    3   Foundation                          0x00000001076595df -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195
    4   UIKit                               0x000000010806f864 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 153
    5   Jobazo                              0x000000010641877d -[MMKMatchesViewController1 tableView:cellForRowAtIndexPath:] + 109
    6   UIKit                               0x000000010807c4b3 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 508
    7   UIKit                               0x000000010805bfb1 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2846
    8   UIKit                               0x0000000108071e3c -[UITableView layoutSubviews] + 213
    9   UIKit                               0x0000000107ffe973 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 521
    10  QuartzCore                          0x0000000107c92de8 -[CALayer layoutSublayers] + 150
    11  QuartzCore                          0x0000000107c87a0e _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380
    12  QuartzCore                          0x0000000107c8787e _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    13  QuartzCore                          0x0000000107bf563e _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 242
    14  QuartzCore                          0x0000000107bf674a _ZN2CA11Transaction6commitEv + 390
    15  QuartzCore                          0x0000000107bf6db5 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 89
    16  CoreFoundation                      0x000000010965cdc7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    17  CoreFoundation                      0x000000010965cd20 __CFRunLoopDoObservers + 368
    18  CoreFoundation                      0x0000000109652b53 __CFRunLoopRun + 1123
    19  CoreFoundation                      0x0000000109652486 CFRunLoopRunSpecific + 470
    20  GraphicsServices                    0x000000010a8ba9f0 GSEventRunModal + 161
    21  UIKit                               0x0000000107f85420 UIApplicationMain + 1282
    22  Project1                            0x0000000106417c93 main + 115
    23  libdyld.dylib                       0x0000000109c54145 start + 1
    24  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

谢谢!

假设您将其复制到SO时这不仅仅是一个打字错误,那么您的语法是错误的。这是您的问题

[self.availableChatRooms = objects mutableCopy];         <---NEED HELP HERE :-(
括号用于objective-c中的消息传递(这是和其他一些东西),因此您可能会在AvailableCatrooms上调用一个方法,但您试图在其中执行赋值

如果这不是你的问题,这只是一个输入错误,如果你能提供当它崩溃时输出的错误,这将有很大帮助


编辑:

根据位于的文档

在调用此方法之前,必须使用
registernb:forCellReuseIdentifier:
registerClass:forcellreuseidentier:
方法注册类或nib文件

我不知道你剩下的代码是什么样子的,但我认为这就是问题所在

如果您在序列图像板中创建表视图单元格,它将负责为您注册nib,您可以使用
dequeueReusableCellWithIdentifier:
方法,请参阅文档


(注意,如果队列中没有单元格,此方法只会返回nil,因此如果返回nil,您需要自己创建一个新单元格)还要确保您的单元格标识符与故事板中的标识符匹配。

这是一个非常优秀的错误

[self.availableChatRooms = objects mutableCopy];
[]左侧需要一个对象,右侧需要一条消息

对象是

self.availableChatRooms = objects
此处使用的赋值运算符将“对象”赋值给“self.availablechatoms”,该赋值运算符的结果是self.availablechatoms,与对象相同

然后您将“mutableCopy”消息发送到对象。该消息创建了一个可变副本,并且由于您没有告诉编译器如何处理结果,因此它被丢弃。您编写的内容与

self.availableChatRooms = objects;
[self.availableChatRooms mutableCopy]; 
你想要

self.availableChatRooms = [objects mutableCopy];

我建议您在Xcode中打开所有警告。我还没有尝试过,但希望您的代码会生成一些警告。

@DanielGalasko-如果您知道这方面的情况吗?嘿,Jamie-我确实更改了语法,但似乎没有影响初始性能,它仍然崩溃…但构建成功..我更新了上面的示例显示了当我单击按钮转到聊天屏幕时出现的错误
self.availableChatRooms = [objects mutableCopy];
[self.availableChatRooms = objects mutableCopy];
self.availableChatRooms = objects
self.availableChatRooms = objects;
[self.availableChatRooms mutableCopy]; 
self.availableChatRooms = [objects mutableCopy];